【python 處理億級資料】使用 Pandas 處理億級資料
阿新 • • 發佈:2019-01-04
此前有一篇文章《別老扯什麼Hadoop了,你的資料根本不夠大》指出:只有在超過5TB資料量的規模下,Hadoop才是一個合理的技術選擇。事實確實如此,在資料分析領域,那麼如何處理億級資料呢,pandas提供了IO工具可以將大檔案分塊讀取,測試了一下效能,非常不錯。可謂是瑞士中的軍刀
python 讀取億級資料程式碼如下:
# encoding: utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import time
import pandas as pd
time1=time.time()
import pandas as pd
# Pandas提供了IO工具可以將大檔案分塊讀取
# 使用不同分塊大小來讀取再呼叫 pandas.concat 連線DataFrame,chunkSize設定在1000萬條左右速度優化比較明顯。
# 實驗結果足以說明,在非">5TB"資料的情況下,Python的表現已經能讓擅長使用統計分析語言的資料分析師遊刃有餘。
reader = pd.read_csv('C:/taobao/22.csv', iterator=True)
loop = True
chunkSize =10000000
chunks = []
while loop:
try:
chunk = reader.get_chunk(chunkSize)
chunks.append(chunk)
except StopIteration:
loop = False
print "Iteration is stopped."
df = pd.concat(chunks, ignore_index=True)
print df
time2=time.time()
print u'總共耗時:' + str(time2 - time1) + 's'