作者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://webptt.com/m.aspx?n=bbs/Python/M.1569046403.A.5CE.html
1F:推 yiche: 我的習慣是換成hdf5來存 09/21 17:43
2F:推 TitanEric: 1G的話pandas還可以應付 09/21 18:32
3F:→ TitanEric: 不然用spark 09/21 18:32
4F:→ ctr1: 很多個1.xG的檔案會持續越來越多,LOG檔 09/21 18:42
5F:推 TitanEric: pandas在讀檔時候可以設定chunks大小 09/21 19:15
6F:推 ssivart: hdf5 compress + chunk 09/21 21:58
7F:推 sxy67230: hdf5儲存,如果有需要隨機訪問的話,用mmap 09/22 09:13
9F:→ marc47: ple/ 09/22 19:49
10F:推 te87037: 如果是串流資料 可以用逐行讀取的方式 09/26 19:55
11F:推 husky0427: 看起來比較像csv 用pandas read_csv吧 09/27 19:07
12F:→ husky0427: 再看一次發現是要純文字轉csv,那就readline 或是 lin 09/27 19:09
13F:→ husky0427: ecache 09/27 19:09
14F:推 FreedomTrail: pymongo 管理資料有用......吧? 10/07 02:24