【发布时间】:2021-04-12 18:08:47
【问题描述】:
我正在尝试使用 dask 来计算存储在大约 1,000 个镶木地板文件之间的数据集中存储的数据摘要。每个文件在 1Mb - 10Mb 之间。当我将一个系列转换为一个数组并在该数组上计算 max 时,它工作得很好。但是,当我尝试和concatenate 两个数组时,我很快就耗尽了内存:
import dask.dataframe as dd
import dask.array as da
data = dd.read_parquet('../data/*.parquet')
field_1 = data['field_1'].to_dask_array()
field_2 = data['field_2'].to_dask_array()
both_fields = da.concatenate((field_1, field_2))
result = da.max(both_fields).compute()
我尝试过使用Client,但这非常慢,并且会发出很多关于垃圾收集占用过多 CPU 时间的警告。但是,它似乎确实在没有耗尽内存的情况下运行。
我是 dask 的新手,所以也许我误解了什么?
【问题讨论】: