加载200MB JSON文件到R



我试图使用R的rjson库将200MB的JSON文件上传到R中,但我得到了Cannot fit vector over 1KB错误。下面是我用来将JSON文件加载到R中的代码:

UnpackJSON <- function(filePath) 
{
  con <- file(filePath, "r")
  input <- readLines(con, -1L)
  # jsonData <- fromJSON(paste(input, collapse=""))
  jsonData <- sapply(input, fromJSON)
  close(con)
  df <- data.frame(jsonData)
  temp <- rownames(df)
  df <- as.data.frame(t(df))
  colnames(df) <- temp
  rownames(df) <- NULL
  return(df)
}

是否有一种方法来优化这段代码或另一种方式来加载这么大的文件到R?我很感谢任何意见。

为什么要使用sapply逐行处理JSON数据?你不能直接说fromJSON(input)吗?我怀疑问题可能是垃圾收集器在删除分析过程中生成的任何副本之前等待整个sapply循环完成(另请参阅此处的注释)。因此,当向量化不起作用时(这是非常可取的),您可以尝试将sapply循环更改为for循环,看看是否有帮助。

最新更新