如何直接将R中的write.csv转换为tar.gz格式?

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

我有一个大 data.frame,我想将其写入压缩的 CSV 文件中。有没有办法直接将数据写入 CSV.TAR.GZ 压缩文件而不是执行 write.csv/gzip 步骤以减少 DISK 访问?

谢谢。

r csv gzip tar in-memory
2个回答
50
投票

使用

gzfile
(或
bzfile
用于 bzip2 存档,或
xzfile
用于 xz 存档)。

write.csv(mtcars, file=gzfile("mtcars.csv.gz"))

PS。如果你只有一个数据框,那么你肯定不需要 tar。


0
投票

对于大数据帧(或大文件),fwrite 比 write.csv 快得多。例如

data.table::fwrite(df, file = "file.csv.gz")

命令花费了 59.4 秒,同时

write.csv(df, file=gzfile("file.csv.gz"))

将相同的数据写入 0.8GB 文件需要 18.1 分钟。

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