[問題] 1G多大資料預處理

作者: ctr1 (【積π】)   2019-09-21 14:13:21
想請問各位版上的前輩
對比較大的純文字檔(約1.5G)預處理怎麼做比較好
我的做法是先讀ftp.log_20190103
邊處理邊把資料寫進新的檔案ftp.log_new中
程式碼如下
希望各位前輩給點明燈
感激不盡
file_write_obj = open("ftp.log_new", 'w')
with open("ftp.log_20190103",'r') as f:
for line in f:
try:
line_list = list(line)
line_list.insert(6,',')
line_list.insert(16,',')
line_list.insert(24,',')
nPos=line_list.index(']')
line_list.insert(nPos+2,',')
str_2="".join(line_list)
file_write_obj.writelines(str_2)
except :
pass
file_write_obj.close()
作者: yiche (你若安好,便是晴天)   2019-09-21 17:43:00
我的習慣是換成hdf5來存
作者: TitanEric (泰坦)   2019-09-21 18:32:00
1G的話pandas還可以應付不然用spark
作者: ctr1 (【積π】)   2019-09-21 18:42:00
很多個1.xG的檔案會持續越來越多,LOG檔
作者: TitanEric (泰坦)   2019-09-21 19:15:00
pandas在讀檔時候可以設定chunks大小
作者: ssivart   2019-09-21 21:58:00
hdf5 compress + chunk
作者: sxy67230 (charlesgg)   2019-09-22 09:13:00
hdf5儲存,如果有需要隨機訪問的話,用mmap
作者: marc47 (思樂冰)   2019-09-22 19:49:00
作者: te87037 (NNN N3)   2019-09-26 19:55:00
如果是串流資料 可以用逐行讀取的方式
作者: husky0427 (虎虎)   2019-09-27 19:07:00
看起來比較像csv 用pandas read_csv吧再看一次發現是要純文字轉csv,那就readline 或是 linecache
作者: FreedomTrail (FreedomTrail)   2019-10-07 02:24:00
pymongo 管理資料有用......吧?

Links booklink

Contact Us: admin [ a t ] ucptt.com