我想将2GB JSON文件作为数据框导入或写入CSV。
我尝试了RJSONIO::fromJSON("review.json")
,但它返回了此错误:
Error in paste(readLines(content), collapse = "\n") :
result would exceed 2^31-1 bytes
所以我尝试了readr::read_lines_raw("review.json")
,每一行都被读为:
[1000] "{\"review_id\":\"VcBo0OZVwTmMh278aakFUg\",\"user_id\":\"PV0Rp_Qh1YCIP0192e4ewg\",\"business_id\":\"G7sVtpD6aqpuUB4F3LEG_w\", \"stars\":4.0,\"useful\":0,\"funny\":0,\"cool\":0,\"text\":\"Excellente place que vous passiez juste prendre un bon thé ou café ou que vous vouliez vous asseoir et manger un brownie décadent ou un grill cheese aux oignons caramélisés. Le personnel est sympathique, pas stressé et ne met pas de pression pour consommer. Les enfants sont les très bienvenus et ont de quoi s occuper!!\",\"date\":\"2015-07-03 19:01:30\"}"
某些行可能超过了R中一个字符串的最大长度,这就是我收到此错误的原因。
我也尝试了stream_in
方法,但是它在流数据中途中断。
有没有一种方法可以在不使每一行都成为整个字符串的情况下导入此文件?还是使用fromJSON()
的完全替代方法?
答案 0 :(得分:0)
I do not have enough 'rep' to comment, but thought you might give this a try:
library(jsonlite)
my.jsonFile<-'review.json'
x<-jsonlite::fromJSON(my.jsonFile,flatten=TRUE)
y<-lapply(rapply(x, enquote, how="unlist"), eval)