from dask_yarn import YarnCluster
from dask.distributed import Client
# Create a cluster where each worker has two cores and eight GiB of memory
cluster = YarnCluster(environment='s3://openbank-ds-playground/environments/conda/gru13-07.tar.gz',
worker_vcores=1,
worker_memory="50GiB",
deploy_mode='local',
dashboard_address=':6689',
)
cluster.adapt(minimum=4, maximum=10)
client = Client(cluster)大家好,我注意到我的dask应用程序中有一个奇怪的行为。我在上面通过EMR架构创建的YarnCluster中使用dask-ml运行Logistic回归,我可以看到每个worker占用的内存大约是数据集的15倍,并且我指定每个worker中只使用1个vcore。我测试过不同大小的数据集,总会遇到数据集大小10-20倍的情况。数据是通过pandas和s3fs从S3加载的。我不明白为什么会这样。你能帮我吗?
环境:
Dask版本: 2.18.0
dask_yarn版本: 0.8.1
Python版本: 3.6.10 |Anaconda,Inc.| (默认,5月8日2020,02:54:21) GCC 7.3.0
发布于 2020-08-08 09:00:24
由于压缩以及磁盘格式和pandas存储之间的效率差异,磁盘上的存储和内存中的存储可能会有很大的差异。
我推荐用Pandas阅读一个小样本,并用df.memory_usage(deep=True)测量它的大小,以了解哪些列占用了空间。
https://stackoverflow.com/questions/63151951
复制相似问题