我有一个大 data.frame,我想将其写入压缩的 CSV 文件中。有没有办法直接将数据写入 CSV.TAR.GZ 压缩文件而不是执行 write.csv/gzip 步骤以减少 DISK 访问?
谢谢。
使用
gzfile
(或 bzfile
用于 bzip2 存档,或 xzfile
用于 xz 存档)。
write.csv(mtcars, file=gzfile("mtcars.csv.gz"))
PS。如果你只有一个数据框,那么你肯定不需要 tar。
对于大数据帧(或大文件),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 分钟。