延迟的dask.dataframe.DataFrame.to_hdf计算崩溃

时间:2019-08-13 19:06:25

标签: dask dask-distributed dask-delayed

我正在使用Dask执行以下逻辑:

  • 从多个输入文件(每个文件一个dd.DataFrame)中读入延迟pd.DataFrame的主文件
  • 在主延迟DataFrame上执行多个query调用
  • 使用DataFrame.to_hdf保存来自DataFrame.query调用的所有数据帧。

如果我在compute=False调用中使用to_hdf,并将每次Delayed调用返回的to_hdf列表馈送到dask.compute,则会崩溃/ seg错误。 (如果我省略compute=False,一切正常。)一些谷歌搜索给了我一些有关锁的信息。我尝试添加一个dask.distributed.Client和一个dask.distributed.Lockto_hdf的{​​{1}},但是我无法解决崩溃问题。

流程如下:

dask.utils.SerializableLock

1 个答案:

答案 0 :(得分:0)

也许您使用的HDF库不是完全线程安全的?如果您不介意失去并行性,则可以在计算调用中添加scheduler="single-threaded"

您可能要考虑使用Parquet而不是HDF。这样的问题更少了。