2014-05-08 32 views
0

我使用(Python的)熊貓的映射函數來處理一個很大的CSV文件(約50千兆字節),像這樣:使用pandas數據框的多處理映射?

import pandas as pd 

df = pd.read_csv("huge_file.csv") 
df["results1"], df["results2"] = df.map(foo) 
df.to_csv("output.csv") 

有沒有一種方法,我可以在此使用並行?也許使用多處理的地圖功能?

感謝, 何塞

回答

1

查看由大塊here,例如here,並追加閱讀文檔here

你好得多讀取塊,處理您的CSV,然後寫出來爲csv (當然你轉換成HDF會變得更好)。

  • 注意到的存儲器
  • 高效相對恆定的量,可以並行地完成(通常需要具有HDF文件可以選擇從雖然段;一個csv不利於這一點)。
  • 那麼複雜,試圖做多處理直接
+0

注意(就像在Mongo的數據庫拆分)如果你需要重疊的數據(如軋製時間序列迴歸塊級並行工作不正常)在要映射的操作中。在這些情況下,首先形成熊貓羣體並手動將它們分派到不同的資源進行計算要快得多,比如每個分散到IPython.parallel中的引擎。 – ely