R - write_parquet 循环
R - write_parquet in loop
fwrite
循环遍历工作目录中的许多 .csv
文件,但是当我写一个 .parquet
时,它每次都会覆盖。
我尝试了几种方法,基本上我是尝试使用文件名 I 来保留 .csv
文件名,如下所示而不覆盖它。
rm(list = ls())
gc()
# Set up environment #
require("data.table")
require("arrow")
# Set directory to data, define files #
setwd("E:/TransferComplete/07/")
files <- list.files(pattern = "csv")
for (i in files){ setwd("E:/TransferComplete/07/")
loopStart <- Sys.time()
bb <- fread(i,header = TRUE,sep = ",", data.table = FALSE, stringsAsFactors = FALSE,
select = c("x","y","z"))
gc()
write_parquet(bb,
'E:/P/i.parquet')
loopEnd <- Sys.time()
loopTime <- round(as.numeric(loopEnd) - as.numeric(loopStart), 0)
}
你的问题非常接近。当你写 .parquet
时,你需要在写文件时将 i
分开,否则循环将继续写一个名为 i.parquet
.
的文件
write_parquet(bb,paste0('E:/P/',i,'.parquet'))
替换这个
write_parquet(bb,
'E:/P/i.parquet')
至此
write_parquet(bb,paste0('E:/P/',i,'.parquet'))
fwrite
循环遍历工作目录中的许多 .csv
文件,但是当我写一个 .parquet
时,它每次都会覆盖。
我尝试了几种方法,基本上我是尝试使用文件名 I 来保留 .csv
文件名,如下所示而不覆盖它。
rm(list = ls())
gc()
# Set up environment #
require("data.table")
require("arrow")
# Set directory to data, define files #
setwd("E:/TransferComplete/07/")
files <- list.files(pattern = "csv")
for (i in files){ setwd("E:/TransferComplete/07/")
loopStart <- Sys.time()
bb <- fread(i,header = TRUE,sep = ",", data.table = FALSE, stringsAsFactors = FALSE,
select = c("x","y","z"))
gc()
write_parquet(bb,
'E:/P/i.parquet')
loopEnd <- Sys.time()
loopTime <- round(as.numeric(loopEnd) - as.numeric(loopStart), 0)
}
你的问题非常接近。当你写 .parquet
时,你需要在写文件时将 i
分开,否则循环将继续写一个名为 i.parquet
.
write_parquet(bb,paste0('E:/P/',i,'.parquet'))
替换这个
write_parquet(bb,
'E:/P/i.parquet')
至此
write_parquet(bb,paste0('E:/P/',i,'.parquet'))