将磁盘帧写入 CSV 的最佳方法是什么?
What's the best way to write a disk frame to CSV?
我正在查看 docs and 我没有看到写入 CSV 的函数。
好像有写入磁盘帧的功能,但不清楚存储在什么格式
write_disk.frame
Write a data.frame/disk.frame to a disk.frame location. If df is a data.frame then using the as.disk.framefunction is recommended for most cases
我可以使用 fwrite
或 write_csv
磁盘框架吗?
我明白了。我可能会添加写入 csv 功能,因为我经常看到这个请求。
保持跟踪的最佳方法是在 github https://github.com/xiaodaigh/disk.frame/issues I have done that this time see 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())
我正在查看 docs and 我没有看到写入 CSV 的函数。
好像有写入磁盘帧的功能,但不清楚存储在什么格式
write_disk.frame
Write a data.frame/disk.frame to a disk.frame location. If df is a data.frame then using the as.disk.framefunction is recommended for most cases
我可以使用 fwrite
或 write_csv
磁盘框架吗?
我明白了。我可能会添加写入 csv 功能,因为我经常看到这个请求。
保持跟踪的最佳方法是在 github https://github.com/xiaodaigh/disk.frame/issues I have done that this time see 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())