我收到了带有要在R中分析的数据的json文件,为此我使用了RJSONIO包:
library(RJSONIO)
filename <- "Indata.json"
jFile <- fromJSON(filename)
Run Code Online (Sandbox Code Playgroud)
当json文件大于约300MB(未压缩)时,我的计算机开始使用交换内存并继续解析(fromJSON)数小时.一个200MB的文件只需要一分钟就可以解析.
我在Ubuntu 64bit和16GB RAM上使用R 2.14(64位),所以我很惊讶需要交换大约300MB的json.
我怎么能读大jsons?内存设置中有什么东西搞砸了吗?我重新启动了R并且只运行了上面的三行.json文件包含2-3列短字符串,10-20列包含0到1000000之间的数字.也就是说,它是大小的行数(在解析数据中超过一百万行).
更新:从评论中我了解到rjson在C中完成的更多,所以我试了一下.带有RJSONIO(根据Ubuntu系统监视器)的300MB文件达到了100%的内存使用率(从6%基线开始)并继续进行交换,只需要60%的内存和rjson包,并且在合理的时间(分钟)内完成解析.