R - 导入 2GB JSON 文件
R - importing 2GB JSON file
我想导入 2GB JSON 文件作为数据框或写入 CSV。
我试过 RJSONIO::fromJSON("review.json")
但是 returns 这个错误:
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()
?
的完全替代方法
我没有足够的 'rep' 发表评论,但我想你可以试试这个:
library(jsonlite)
my.jsonFile<-'review.json'
x<-jsonlite::fromJSON(my.jsonFile,flatten=TRUE)
y<-lapply(rapply(x, enquote, how="unlist"), eval)
我想导入 2GB JSON 文件作为数据框或写入 CSV。
我试过 RJSONIO::fromJSON("review.json")
但是 returns 这个错误:
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()
?
我没有足够的 'rep' 发表评论,但我想你可以试试这个:
library(jsonlite)
my.jsonFile<-'review.json'
x<-jsonlite::fromJSON(my.jsonFile,flatten=TRUE)
y<-lapply(rapply(x, enquote, how="unlist"), eval)