1

我正在尝试将带有分类列的 Dask 数据框存储到本教程*.h5中的文件中- 1:23:25 - 1:23:45。

这是我对store函数的调用:

stored = store(ddf,'/home/HdPC/Analyzed.h5', ['Tag'])

功能store是:

@delayed
def store(ddf,fp,c):
    ddf.categorize(columns=c).to_hdf(fp, '/data2')

并使用分类

ddf并且stored是类型:

print(type(ddf), type(stored))
>>> (<class 'dask.dataframe.core.DataFrame'>, <class 'dask.delayed.Delayed'>)

当我运行compute(*[stored])orstored.compute()时,我得到这个:

dask.async.AttributeError: 'DataFrame' object has no attribute 'categorize'

有没有办法Tag用函数实现列的这种分类store?或者我应该使用不同的方法来存储分类的 Dask 数据帧?

4

1 回答 1

2

我建议您在没有延迟调用的情况下尝试数据帧操作 - daak-dataframes 在内部已经是惰性计算图。我相信通过调用计算,您实际上是将生成的 pandas 数据帧传递给您的函数,这就是您收到错误的原因。

在您的情况下:只需删除@delayed(记住 to_hdf 是一个阻塞调用)。

于 2017-05-21T14:42:18.917 回答