将200MB JSON文件加载到R中

时间:2013-05-22 04:33:28

标签: 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?我很感激任何意见。

1 个答案:

答案 0 :(得分:2)

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