У меня есть гигантский вложенный JSON-файл, который мне нужно проанализировать. В настоящее время я делаю это в Pandas, но хотел бы узнать, смогу ли я реализовать это в Dask для скорости / масштабируемости.
Мой текущий код панд:
import pandas as pd
json_data = pd.read_json(input_file)
feature_df = json_normalize(json_obj["Features"],
record_path=["Cycles","Pools"],
meta=["FeatureID"])
Я дошел до следующего кода в Dask, но я не могу найти больше информации о том, как сделать это на веб-страницах:
import dask.bag as db
import json
json_data = db.read_text(input_file).map(json.loads)
Это возвращает сумку с сумкой, которую я должен выяснить, как правильно разобрать.
Мой JSON структурирован следующим образом:
{
"FovID":1,
"Features":[
{
"FeatureID":"1_166_155",
"X":166,
"Y":155,
"Cycles":[
{
"CycleID":31,
"Pools":[
{
"PoolID":1,
"BC":"1224",
"Qual":"999",
"Category":"000"
},
{
"PoolID":2,
"BC":"0",
"Qual":"999",
"Category":"000"}
}]}
Решение:
Вместо того, чтобы использовать сумку для сумок, я последовал совету @ mdurant и прочитал JSON непосредственно в фрейм данных следующим образом:
json_data = dd.read_json(self.input_s6, orient='columns').compute()