r语言 - 将磁盘帧写入 CSV 的最佳方法是什么?



我正在查看文档,但没有看到用于写入CSV的函数。

看起来有一个写入磁盘帧的功能,但不清楚它存储在中的格式

write_disk.frame

将数据帧/磁盘帧写入磁盘帧位置。如果df是data.frame,则建议在大多数情况下使用as.disk.frame函数

我可以将fwritewrite_csv与磁盘框架一起使用吗?

我明白了。我可能会添加写入csv功能,因为我经常看到这个请求。

不过,保持跟踪的最好方法是在github上提交一个问题https://github.com/xiaodaigh/disk.frame/issues我这次已经做到了https://github.com/xiaodaigh/disk.frame/issues/311

如果你想将每个区块写入一个单独的CSV,只需执行

df %>%
cimap(function(id, chunk) {
data.table::fwrite(chunk, file.path("some/path/", paste0(id, ".csv"))
NULL # return null since you don't need to return anything
}, lazy=FALSE)

例如

library(disk.frame)
a = as.disk.frame(nycflights13::flights)
cimap(a, function(chunk, id) {
data.table::fwrite(chunk, file.path(tempdir(), paste0(id, ".csv")))
NULL
}, lazy=FALSE)

dir(tempdir())

如果你想写入一个文件,只需修改为通过append=TRUE写入一个档案,但一定要关闭多个工作者!

setup_disk.frame(workers = 1) # only one worker
cmap(a, function(chunk) {
data.table::fwrite(chunk, file.path(tempdir(), "one_file.csv"), append = TRUE)
NULL
}, lazy=FALSE)
setup_disk.frame() # turn multi worker back on 

dir(tempdir())

最新更新