【问题标题】:Create data-frame with specific number of rows with R使用 R 创建具有特定行数的数据框
【发布时间】:2017-11-26 18:47:42
【问题描述】:

我有一个大于 2GB 的大型 json 文件。由于数据量非常大,我无法使用整个数据集创建数据框。我想解析特定信息并写入 CSV 文件。

所以我正在寻找一些技术来创建具有特定行数的数据框。

假设我在将 json 解析为数据帧时有 2M 行,我想创建一个每个进程只有 10k-15k 行的数据帧。然后将一些信息写入 CSV 文件。

每个进程将有 10k-15k 行,直到完成所有 2M 行。

我正在使用 tidyjsondplyr 包。

【问题讨论】:

  • 如何将 HUGE json 文件拆分为 R 之外的较小文件?
  • 你能告诉我们,到目前为止你尝试了什么?

标签: json r csv dplyr


【解决方案1】:

我建议将大文件拆分为较小的文件并并行处理:

 library(parallel)
 json_files<-list.files(path = "path/to/jsons",pattern="*.json",full.names = TRUE)#get the files' location

 no_cores <- detectCores() - 1
 registerDoParallel(cores=no_cores)  
 cl <- makeCluster(no_cores)

system.time(json_list<-parLapply(cl,json_files,function(x) rjson::fromJSON(file=x,method = "R")))

  stopCluster(cl)#Once we are done we need to close the cluster so that resources such as memory are returned to the operating system.
  gc()#just a garbage collection call.

您现在有一个包含整个导入信息的列表。

【讨论】:

    猜你喜欢
    • 2019-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 2021-07-26
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多