前提・実現したいこと
現在,大量のjson形式のデータをpythonで読み取ろうとしているのですが,すごく時間がかかります.
調べてみると,jsonはデータ量に比例して読み込みスピードの時間が多くなると出てきました.
そこで,質問なのですが,このスピードを速くすることはデータをjson形式のままですることは可能なのでしょうか?
例えば,pythonの特定のライブラリを使うと速くなる or R言語やc++を用いると速くなるなどの情報を頂けると嬉しいです.
目標はこれら全てをdataframeにしたいです.
発生している問題・エラーメッセージ
boto3でローカルで読み取った時のコードです.
python
1path1 = f"s3://mybucket" 2import time 3import awswrangler as wr 4import boto3 5start = time.time() 6my_session = boto3.Session(aws_access_key_id='***', aws_secret_access_key='***', region_name='***') 7wr.s3.read_json(path1, boto3_session=my_session) 8elapsed_time = time.time() - start 9print(elapsed_time)
該当のソースコード
下のjsonファイルを読み込むのに30秒ほどかかりました.これと同程度のjsonファイルが約261000個ほどあります.
json
1{ 2 "format": "json", 3 "payload": { 4 "created_at": "20200101 18:45:20.000", 5 "AAA": "aaa", 6 "BBB": "bbb", 7 "ID": "1", 8 "purification": "CCC", 9 "status_bit": [ 10 { 11 "device": "D00800.00", 12 "name": "処理停止中", 13 "float": false 14 }, 15 (上のdeviceがこのあと,およそ500項目ある.teratailの字数制限に引っかかるので略.各deviceの文字の長さは全て同程度.) 16 ] 17 }, 18 "qos": 0, 19 "timestamp": 1602755120, 20 "topic": "sample" 21}
補足情報(FW/ツールのバージョンなど)
現在,jsonはawsのs3に貯まっており,boto3ライブラリやaws Glueを使用してみましたがうまくいきません(遅かった)でした.
.
回答2件
あなたの回答
tips
プレビュー