DASK вложенный JSON в dataframe - PullRequest
       5

DASK вложенный JSON в dataframe

0 голосов
/ 12 сентября 2018

У меня есть гигантский вложенный 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()

1 Ответ

0 голосов
/ 12 сентября 2018

Вы действительно можете использовать API-пакет для своей работы, но бывает так, что API-интерфейс dask-dataframe также имеет функцию read_json , которая работает как версия для панд.

Воспользовавшись read_json, вы, вероятно, захотите использовать map_partitions , чтобы применить ваше построчное дальнейшее сокращение результирующих словарей.

...