python – 将Dask DataFrame存储为pickle

我有一个Dask DataFrame构造如下:

import dask.dataframe as dd

df = dd.read_csv('matrix.txt', header=None)
type(df) //dask.dataframe.core.DataFrame

有没有办法将这个DataFrame保存为pickle?

例如,

df.to_pickle('matrix.pkl')

最佳答案 通过快速检查dask中可用的方法,这是不可能的.它仍然可以作为另一个答案,但我担心由于dask数据帧的最终分布式特性,它可能不是直截了当的.

无论如何,如果我是你,我会通过另一个解决方案并使用镶木地板作为存储.它为您提供与泡菜基本相同的优点,以及更多.

df.to_parquet('my_file.parquet')

虽然,如果你的计划是使用pickle作为’暂停’方法以便稍后恢复计算,那么保存到镶木地板并不会有帮助.

我的建议是到目前为止使用镶木地板.请看这个post,其中比较了存储一般熊猫数据帧的不同技术.你会发现他们甚至不讨论pickle(它有一些问题,比如它可能在两个python版本之间不兼容).这篇文章略显陈旧,现在pandas / dask可以直接使用镶木地板,而无需明确使用pyarrow.

我想你有兴趣阅读时间.文件大小和读取时间之间总是存在权衡.虽然在文章中显示当您考虑多核心操作时,您可以使用压缩拼花文件获得类似的读取性能(Parquet-snappy列)

《python – 将Dask DataFrame存储为pickle》

因此,我会重复一遍.去寻找实木复合地板文件,你将面向未来.除非你的用例与柱状/面向数据的用例非常不同.

点赞