Dask:腌制数据帧以供以后使用是否安全?

时间:2016-08-25 13:48:07

标签: python dask

我有一个类似数据库的对象,包含许多dask数据帧。我想处理数据,保存并在第二天重新加载以继续分析。

因此,我尝试使用pickle保存dask数据帧(不是计算结果,只是"计算计划"本身)。显然,它起作用(至少,如果我在同一台机器上取消对象)......但是有一些陷阱吗?

1 个答案:

答案 0 :(得分:2)

一般来说,通常是安全的。但是有一些警告:

  1. 如果你的dask.dataframe包含自定义函数,例如with df.apply(lambda x: x),则内部函数将不是pickleable。但是,它仍然可以使用cloudpickle
  2. 进行序列化
  3. 如果您的dask.dataframe包含对仅在本地计算机上有效的文件的引用,那么虽然它仍然可序列化,但另一台计算机上的重新序列化版本可能不再有用
  4. 如果您的dask.dataframe包含dask.distributed Future个对象,例如在群集上使用Executor.persist时会出现这些对象,那么这些对象目前无法序列化。
  5. 我建议使用版本> = 0.11.0。