Dask数据帧没有属性分类

时间:2017-05-20 18:30:22

标签: python dataframe dask dask-delayed

我正在尝试按照this tutorial - 1:23:25 - 1:23:45将带有分类列的Dask数据帧存储到*.h5文件中。

以下是我对store功能的调用:

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

函数store是:

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

并使用categorize

ddfstored的类型为:

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

当我运行compute(*[stored])stored.compute()时,我明白了:

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

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

1 个答案:

答案 0 :(得分:2)

我建议你尝试没有延迟调用的数据帧操作 - daak-dataframes内部已经是懒惰的计算图。我相信通过调用compute,你实际上是将得到的pandas数据帧传递给你的函数,这就是你得到错误的原因。

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