python - 数数 使用 dask 的大型镶木地板文件中的行数,没有内存错误
问题描述
我有 20 个镶木地板文件,每个文件大小约为 5GB。我要数没有。整个数据集中的记录。
我有当前的代码:
from dask.distributed import Client, LocalCluster
cluster = LocalCluster(n_workers=8, threads_per_worker=1)
client = Client(cluster)
import dask.dataframe as dd
df = dd.read_parquet("s3://bucket/2020_03_31/*.parquet", columns=['id'], chunksize="1000MB")
df.count().compute()
但是代码挂起并抛出内存错误。我的机器有 16 个内核和 64GB 内存。
编辑:
根据要求,我删除了 chunksize 参数,但输出仍然挂起。甚至诊断页面也停止加载。我没有超出内存错误,但我不知道发生了什么。
# Output hangs
df = dd.read_parquet("s3://bucket/2020_03_31/*.parquet", columns=['id'])
解决方案
我建议删除 chunksize 参数。通过这样做,您要求 Dask 将许多行组聚合到单个任务中,这可能会压倒您的记忆。
推荐阅读
- google-chrome - 非隐身模式下的vscode chrome调试器
- angular - Angular8:HttpClient发布到服务器地址
- c++ - 检测和计数接触(遮挡问题)并具有相同颜色的图像
- string - 字符串文字和字符连接输出
- javascript - 如何在 React 本机应用程序上从本机调用 JavaScript 函数
- python-3.x - 在 Pandas 列中查找多行的最大值
- snowflake-cloud-data-platform - 是否可以在不限定数据库名称的情况下运行雪花 sql 脚本。?
- asp.net-mvc - 为什么我在 .net core 3 中收到错误 CS0246?
- blogger - 目标 _blank “条件”
- c# - 在 CSHTML 表中显示 +100.000 个条目需要花费大量时间