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