作者celestialgod (天)
看板R_Language
标题Re: [问题] R读取JSONL(or JSON)格式的dataset
时间Sat Oct 29 00:02:08 2016
※ 引述《pp61022 (fight)》之铭言:
: [问题类型]:
: 程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
: [软体熟悉度]:
: 请把以下不需要的部份删除
: 入门(写过其他程式,只是对语法不熟悉)
: [问题叙述]:
: 请简略描述你所要做的事情,或是这个程式的目的
: 我在kaggle看到一个dataset,
: https://www.kaggle.com/roamresearch/prescriptionbasedprediction
: 想要把他下载下来转成Rdata档,
: 但是他是JSONL的格式,但好像也算是JSON格式?!
: (网站说明:The file is in JSONL format (one JSON record per line))
: 有搜寻一些R读取JSON格式的方法, 但还是没办法出来,
: 想请教版友们该如何修改才能正常读取这种格式的dataset
: (我刚学R, 对於某些程式码还不熟, 不清楚应该如何debug)
: [程式范例]:
: 张贴能够重现错误的程式码,可以帮助版友更快的帮你解决问题
: http://ideone.com/PL9XJq
: 读到CleanData<-do.call("rbind", person)出现warning message,但我不知道该如何修
: 正
:
: Warning message:
: In rbind(provider_variables = list(settlement_type = "non-urban", :
: number of columns of result is not a multiple of vector length (arg 1)
: [环境叙述]:
: 请提供 sessionInfo() 的输出结果,
: 里面含有所有你使用的作业系统、R 的版本和套件版本资讯,
: 让版友更容易找出错误
: R version 3.2.3 (2015-12-10)
: Platform: x86_64-w64-mingw32/x64 (64-bit)
: Running under: Windows 7 x64 (build 7601) Service Pack 1
: locale:
: [1] LC_COLLATE=Chinese (Traditional)_Taiwan.950
: [2] LC_CTYPE=Chinese (Traditional)_Taiwan.950
: [3] LC_MONETARY=Chinese (Traditional)_Taiwan.950
: [4] LC_NUMERIC=C
: [5] LC_TIME=Chinese (Traditional)_Taiwan.950
: attached base packages:
: [1] stats graphics grDevices utils datasets methods
: [7] base
: other attached packages:
: [1] rjson_0.2.15
: loaded via a namespace (and not attached):
: [1] tools_3.2.3
: [关键字]:
: 选择性,也许未来有用
: 我有参考https://goo.gl/EEdGxP 这个网站的写法
试试看ndjson这个套件吧
他可以正确解析jsonl
并且速度也不慢,以下是测试code
library(ndjson)
jsonlFileName <- unzip("prescriptionbasedprediction.zip", list = TRUE)$Name
unzip("prescriptionbasedprediction.zip")
df <- stream_in(jsonlFileName)
用ndjson是目前看到最快的方法XDD
ndjson是八月新出的套件...
玩一下觉得还不错XDD
而且这资料怎麽那麽大,吃掉我快10G的记忆体= =....
读要好久,用readLines + sapply + fromJSON的时间超久... 久到完全不想等Orz
补充一点,ndjson读进来是data.table
--
R资料整理套件系列文:
magrittr #1LhSWhpH (R_Language) https://goo.gl/OBto1x
data.table #1LhW7Tvj (R_Language) https://goo.gl/QFtp17
dplyr(上.下) #1LhpJCfB,#1Lhw8b-s (R_Language) https://goo.gl/GcfNoP
tidyr #1Liqls1R (R_Language) https://goo.gl/pcq5nq
pipeR #1NXESRm5 (R_Language) https://goo.gl/cDIzTh
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.38.128.86
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1477670532.A.716.html
※ 编辑: celestialgod (114.38.128.86), 10/29/2016 00:03:44
※ 编辑: celestialgod (114.38.128.86), 10/29/2016 00:03:52
1F:→ abc2090614: 赞赞 10/29 01:31
2F:推 cywhale: first see ndjson~~ thanks~ 10/29 07:02
3F:推 Godkin: 10/29 10:51
4F:推 pp61022: 哇! 这方式好快啊!谢谢版主大大 10/29 11:48