簡體   English   中英

增加數據大小

[英]Increase the data size

我有以下指定格式的數據示例。 我需要將數據大小增加到大約1億個條目。 行的順序無關緊要隨機行的順序會更好。

輸入

004096f41eb8 00904bf131ad 40.0 820219 438869 820219 438869
004096f41eb8 00904bf469bd 40.0 820219 438869 820219 438869
00022d56dffe 00022dcbe817 962.0 820353 439280 820353 439280
00022dcbe817 00306511e9e0 540.0 820353 439280 820353 439280
00022dcbe817 00904b21787a 4250.0 820353 439280 820353 439280
00022dcbe817 00904b3b845a 1117.0 820353 439280 820353 439280
00022dcbe817 00904bc3be80 1117.0 820353 439280 820353 439280
00022dcbe817 00904bcd5f00 4250.0 820353 439280 820353 439280
00022dcbe817 00904bfebc7c 3737.0 820353 439280 820353 439280

如何增加數據大小(不可能手動增加1億行)。 試圖找到一些相關樣本無法獲得。 任何有用的建議或參考都很好。

從您的寫作方式來看,我認為您正在嘗試找出如何生成用於測試(或類似目的)的隨機數據

話雖如此,在查看您要生成的樣本數據的類型時,它看起來如下所示:

<hexadecimal> <hexadecimal> <float> <int> <int> <int> <int>

約束條件是十六進制的前導零不超過12位,並且float必須為單位大小。

但是,如果上述情況是正確的,則可以按照這種推理來做這種類型的數據(警告提示,這是天真的嘗試!)

def generate_random_data():
   hex1 = '%012X' % random.randint(0,10000000000)
   hex2 = '%012X' % random.randint(0,10000000000)
   flt = float(random.randint(0,100000)) # change this value as required
   int1 = random.randint(0,1000000) 
   int2 = random.randint(0,1000000) 
   int3 = random.randint(0,1000000) 
   int4 = random.randint(0,1000000) 

   s = '%s %s %.1f %d %d %d %d' % (hex1.lower(), \
                                   hex2.lower(), \
                                   flt, \
                                   int1, \
                                   int2, \
                                   int3, \
                                   int4)
   return s

def generate_random_data_strings(n):
    for i in xrange(n):
        print generate_random_data()

如果此方法正確,則只需適應所需的最大數量的值,然后將其寫入文件。 但是,鑒於您提供的數據,我無法就您的值的最大值進行合理的爭論-因此請根據需要進行更改。

示例運行

generate_random_data_strings(7)

樣品輸出

00005f8e93fc 000168ed5d44 9604.0 551625 674203 912016 143600
0000c104ecfa 0000f470720a 88605.0 636828 692739 388774 748867
00021f833e47 00001fad166f 45388.0 841076 93054 373244 356865
0001d8fe8c3c 0000f70e0e61 48101.0 566598 800563 978234 141179
000157f0f23a 00018bf2db0e 24763.0 485468 138221 722335 256191
000097d60fe9 0001550f6640 27414.0 153090 3736 761677 656677
0000675efc87 00003458055a 98721.0 736265 565842 697767 521413

編輯(生成緯度和經度的其他列)

int4下面添加以下內容(並正確縮進):

longitude = random.random() * math.pi * 2
latitude = math.acos(random.random() * 2 - 1)

然后修改s此(和在插入的插入參數的結尾的緯度和經度,並以此作為用於精密基准http://en.wikipedia.org/wiki/Decimal_degrees ):

'%s %s %.1f %d %d %d %d %.6f %.6f'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM