dask在大文件上的数据帧内存问题

时间:2017-12-12 11:00:09

标签: python dataframe dask

a = dd.read_csv('huge.csv', blocksize=1e6)
g = a.groupby(['col_a', 'col_b'])
g.col_c.sum().max().compute()  # failed, MemoryError

我认为dask.dataframe在内存问题上不会失败,但是什么? 顺便说一下,我认为blocksize很重要,如果我设置一个非常小的尺寸,例如1e3,read_csv需要永远完成......

1 个答案:

答案 0 :(得分:1)

默认情况下,Groupby-aggregation减少为单个分区。如果您的结果有很多组,则此单个分区可能非常大。您可以考虑将renderItem= () => {}关键字设置为groupby.sum为一些中等数字,例如10。

split_out=

这将导致groupby-aggregation结果在十个分区而不是一个分区中分割。

我不知道这是否真的是你的问题,如果这不起作用,那么我建议你创建一个minimal complete verifiable example

此外,您可能需要更大的块大小。 1MB块非常小。我会拍摄10-100倍,或者更好的是,将它作为默认值。