Dask from_delayed() 导致内存使用率过高

问题描述 投票:0回答:1

我按照 (https://docs.dask.org/en/stable/delayed-collections.html) 的说明为 Dask DataFrame 创建自定义数据加载器,基本上是这样的:

import dask.dataframe as dd
from dask.delayed import delayed
dfs = [delayed(load)(fn) for fn in filenames]
df = dd.from_delayed(dfs, meta=types)

我有 10k 个文件名,并且我正在指定

meta
属性(类型正确)。问题是这会消耗大量内存并使工作人员暂停。如果我做同样的事情,但使用 dask 数组,它工作得很好,但如果我通过从
load()
函数返回 Pandas DataFrames 来做到这一点,它会获得如此高的内存使用量,甚至耗尽系统内存。这种方法不是应该能够很好地扩展吗?是否有其他方法在 Dask 中加载 DataFrame(按部分)?

我正在使用

dask==2023.5.0

python pandas dask dask-distributed
1个回答
0
投票

回答我自己的问题:问题似乎是由

load()
函数的参数引起的,如果该参数太大而无法序列化,则会开始积累内存。

© www.soinside.com 2019 - 2024. All rights reserved.