0

我正在尝试使用 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 中?我很感激任何意见。

4

1 回答 1

2

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

于 2013-05-22T05:48:09.900 回答