Re: [問題] R讀取JSONL(or JSON)格式的dataset

作者: celestialgod (天)   2016-10-29 00:02:08
※ 引述《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
作者: abc2090614 (casperxdd)   2016-10-29 01:31:00
讚讚
作者: cywhale (cywhale)   2016-10-29 07:02:00
first see ndjson~~ thanks~
作者: pp61022 (fight)   2016-10-29 11:48:00
哇! 這方式好快啊!謝謝版主大大

Links booklink

Contact Us: admin [ a t ] ucptt.com