【问题标题】:fread with gunzip: What's the more memory efficient way?fread with gunzip:什么是内存效率更高的方法?
【发布时间】:2025-12-10 10:30:02
【问题描述】:

如果我有一个用 gzip 压缩的大型数据文件,比如dat.gz,那么内存效率更高?

mydat <- fread("gunzip -c dat.gz")

或者,首先解压缩/解压缩文件说,dat,然后做

mydat <- fread("dat")

我关心的是内存而不是速度,以防止 R 崩溃。

【问题讨论】:

  • 对于内存问题,可能值得使用skip=nrows=fread 选项分几个步骤加载文件(虽然不确定这是否会改变)

标签: r memory data.table gzip fread


【解决方案1】:

我在 temp.csv 中编写了一个 5000x5000 矩阵,并使用 profvis 分析了两种方法的内存使用情况:

profvis({system("gunzip -c temp.csv.gz > temp.csv"); mat <- fread("temp.csv")})

内存使用量:190.9 MB

profvis({fread("gunzip -c temp.csv.gz")})

内存使用量:190.8 MB

我运行了几次,两个命令的内存使用量在 190-191 之间波动。所以我得出结论,内存使用情况是一样的。

【讨论】:

    最近更新 更多