【问题标题】:Generic code to flatten any complicated nested json file using pyspark/pandas使用 pyspark/pandas 展平任何复杂嵌套 json 文件的通用代码
【发布时间】:2022-08-17 19:12:50
【问题描述】:

我有一个复杂的嵌套 json 文件。我需要一个通用代码来展平这个嵌套文件并使用 pyspark 或 pandas 将结果存储在数据框中。 它是否可以实现,它们是否适用于任何复杂的嵌套 json 文件的通用代码?

    标签: python pyspark azure-databricks


    【解决方案1】:

    我在数据变量中添加了 json。要导入 json 文件,您可以使用

    df = pd.read_json('data.json')
    

    我使用json_normalize() 来展平嵌套的 json 数据。

    深度嵌套的 JSON 结构,可以通过将元参数传递给 json_normalize 函数来转换数据帧,如下所示。

    import pandas as pd
    data = [
        {
            "company": "Google",
            "tagline": "Hello World",
            "management": {"CEO": "ABC"},
            "department": [
                {"name": "Gmail", "revenue (bn)": 123},
                {"name": "GCP", "revenue (bn)": 400},
                {"name": "Google drive", "revenue (bn)": 600},
            ],
        },
        {
            "company": "Microsoft",
            "tagline": "This is text",
            "management": {"CEO": "XYZ"},
            "department": [
                {"name": "Onedrive", "revenue (bn)": 13},
                {"name": "Azure", "revenue (bn)": 300},
                {"name": "Microsoft 365", "revenue (bn)": 300},
            ],
        },
      
    ]
    df = pd.json_normalize(
        data, "department", ["company", "tagline", ["management", "CEO"]]
    )
    
    df
    

    输出

    通过 jssuriyakumar 引用此 article

    您也可以参考 calestini 的类似 issue

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-14
      • 2021-12-31
      • 2022-10-12
      • 2021-09-28
      • 2021-12-16
      • 2021-10-24
      • 2020-03-08
      • 2021-05-14
      相关资源
      最近更新 更多