【问题标题】:R - write_parquet in loopR - 循环中的 write_parquet
【发布时间】:2023-03-21 04:16:02
【问题描述】:

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)
}

【问题讨论】:

    标签: r loops csv parquet


    【解决方案1】:

    替换这个

    write_parquet(bb,
      'E:/P/i.parquet')
    

    到这里

    write_parquet(bb,paste0('E:/P/',i,'.parquet'))
    

    【讨论】:

      【解决方案2】:

      您的问题非常接近。当你写.parquet时,你需要在写文件的时候把i分开,否则循环会一直写一个叫i.parquet的文件。

      write_parquet(bb,paste0('E:/P/',i,'.parquet'))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-18
        • 1970-01-01
        • 2022-11-11
        • 1970-01-01
        • 2011-05-11
        • 2012-06-21
        • 2014-03-25
        • 1970-01-01
        相关资源
        最近更新 更多