簡體   English   中英

從生成器懶惰地創建 dask 數據幀

[英]Lazily create dask dataframe from generator

我想從一個生成器懶惰地創建一個 Dask 數據幀,它看起來像:

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

parser.read 和 repo.download_files 都返回生成器(使用 yield)。 parser.read 產生一個鍵值對字典,它(如果我只是使用普通的熊貓)會將每個字典收集到一個列表中,然后使用:

df = pd.DataFrame(parsed_rows)

從中創建 dask 數據框的最佳方法是什么? 原因是 a) 我不一定知道返回的結果數量,b) 我不知道將部署它的機器的內存分配。

或者我應該做些什么不同的事情(例如,可能會創建一堆數據幀,然后將它們放入 dask 中?)

謝謝。

如果您想使用單機 Dask 調度程序,那么您需要知道您必須從多少個文件開始。 這可能類似於以下內容:

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

如果您使用分布式調度程序,您可以即時添加新的計算,但這有點高級。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM