gpt4 book ai didi

python - 将巨大的 dask 数据帧写入 parquet 因内存不足而失败

转载 作者:行者123 更新时间:2023-12-03 23:52:49 28 4
gpt4 key购买 nike

我基本上正在转换一些 csv文件到 parquet .为此,我决定使用 dask ,阅读 csvdask并写回 parquet .我按照客户的要求使用了大块大小(500 MB)。 csv是 15 GB 和更大(直到 50 GB),机器有 64 GB RAM。每当我运行基本 to_parquet命令,RAM 开始增加并最终变得如此之高以至于 linux 杀死 过程。有人知道为什么会这样吗?当我不指定块大小时,它可以工作,但会创建很多小的 Parquet 文件 (24 MB)。有没有办法解决这个创建至少 500 MB 的块的问题。

_path = 'E://'
dt = dd.read_csv(_path+'//temporal.csv', blocksize = 500e5)
dt.to_parquet(path=_path+'/t.parq', compression='gzip')`

最佳答案

您说您的分区最终每个分区大约为 15GB。如果您使用带有多个线程的 Dask,那么内存中可能会同时存在多个线程。如果您只有 64GB,那么很有可能用完 ram。

一些选项:

  • 使用较小的块大小
  • 以不同方式对数据进行编码,以提高空间效率。例如,文本数据(Python 中内存爆炸的常见原因)可能更有效地存储为分类数据
  • 使用更少的线程
  • 关于python - 将巨大的 dask 数据帧写入 parquet 因内存不足而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54978669/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com