2016-09-30 64 views
2

我想懶洋洋地創建發電機的DASK數據幀DASK據幀,它看起來像:懶洋洋地創建發電機

[parser.read(local_file_name) for local_file_name in repo.download_files())] 

如果雙方parser.read和repo.download_files返回發生器(使用收益)。 parser.read產生鍵值對,這(如果我只是使用普通的熊貓)的字典將收集到一個列表中的每個字典,然後使用:

df = pd.DataFrame(parsed_rows) 

什麼是創建一個DASK的最佳方式來自這個數據框?原因是a)我不知道返回結果的數量,b)我不知道將要部署的計算機的內存分配情況。

或者我應該做不同的(例如也許創造了一堆dataframes,然後把那些到DASK代替?)

感謝。

回答

1

如果你想使用單機Dask調度程序,那麼你需要知道你有多少文件開始。這可能是類似以下內容:

filenames = repo.download_files() 
dataframes = [delayed(load)(filename) for filename in filenames] 
df = dd.from_delayed(dataframes) 

如果使用distributed scheduler,你可以在飛行中增加新的計算,但這是一個比較先進的。