2

使用包含许多.feather文件的文件夹,我想将它们全部加载到 python 中的 dask 中。

到目前为止,我已经尝试了以下来自 GitHub 上的类似问题https://github.com/dask/dask/issues/1277

files = [...]
dfs = [dask.delayed(feather.read_dataframe)(f) for f in files]
df = dd.concat(dfs)

不幸的是,这给了我 TypeError: Truth of Delayed objects is not supported那里提到的错误,但解决方法尚不清楚。

是否可以在 dask 中执行上述操作?

4

1 回答 1

6

而不是concat对数据帧进行操作的 ,您想使用from_delayed,它将延迟对象列表(每个对象代表一个数据帧)转换为单个逻辑数据帧

dfs = [dask.delayed(feather.read_dataframe)(f) for f in files]
df = dd.from_delayed(dfs)

如果可能,您还应该提供meta=(零长度数据帧,描述列、索引和 dtype)和divisions=(沿分区的索引的边界值)kwargs。

于 2019-08-08T19:10:56.427 回答