作者ctr1 (【積π】)
看板Python
標題[問題]1G多大資料預處理
時間Sat Sep 21 14:13:21 2019
想請問各位版上的前輩
對比較大的純文字檔(約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()
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.25.143.98 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1569046403.A.5CE.html
推 yiche: 我的習慣是換成hdf5來存 09/21 17:43
推 TitanEric: 1G的話pandas還可以應付 09/21 18:32
→ TitanEric: 不然用spark 09/21 18:32
→ ctr1: 很多個1.xG的檔案會持續越來越多,LOG檔 09/21 18:42
推 TitanEric: pandas在讀檔時候可以設定chunks大小 09/21 19:15
推 ssivart: hdf5 compress + chunk 09/21 21:58
推 sxy67230: hdf5儲存,如果有需要隨機訪問的話,用mmap 09/22 09:13
→ marc47: ple/ 09/22 19:49
推 te87037: 如果是串流資料 可以用逐行讀取的方式 09/26 19:55
推 husky0427: 看起來比較像csv 用pandas read_csv吧 09/27 19:07
→ husky0427: 再看一次發現是要純文字轉csv,那就readline 或是 lin 09/27 19:09
→ husky0427: ecache 09/27 19:09
推 FreedomTrail: pymongo 管理資料有用......吧? 10/07 02:24