在ADF中将嵌套JSON解析为CSV文件的API

vhmi4jdf  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(109)

我从Log Analytics API中获取一个生成的JSON文件到ADF中,我想将其转换为CSV文件。我的Json文件有这样的结构:

{
    "tables": [
        {
            "name": "PrimaryResult",
            "columns": [
                {
                    "name": "PipelineName",
                    "type": "string"
                },
                {
                    "name": "Status",
                    "type": "string"
                },
                {
                    "name": "TimeGenerated",
                    "type": "datetime"
                },
                {
                    "name": "_ResourceId",
                    "type": "string"
                },
                {
                    "name": "Type",
                    "type": "string"
                }
            ],
            "rows": [
                [
                    "Get_Tables",
                    "Succeeded",
                    "2023-09-04T08:15:48.77315Z",
                    "/subscriptions/144612ca-37be-4643-9c80-5706a350bdb2/resourcegroups"
                ],
                [
                    "LogAnaytics",
                    "Succeeded",
                    "2023-09-04T08:15:55.073672Z",
                    "/subscriptions/providers/microsoft.datafactory/factories",
                    "ADFPipelineRun"
                ]
            ]
        }
    ]
}

我试着扁平化,首先是表比列比行,像这样:

但它没有工作。我想在csv中得到这样的结果:

hwazgwia

hwazgwia1#

为了实现你的要求,按照下面的步骤,我把你的样本Json和转换它:

  • 首先在源代码中正确导入投影。

    数据预览:

对于列

  • 首先使用flatten活动将列展平。

    数据预览:

  • 添加替代列

    数据预览:

  • 然后使用透视转换将列转换为行。

    无需设置group by

    数据预览:

对于行

  • 然后将行展平。

    数据预览:

  • 使用派生列变换展开嵌套数组。

    数据预览:

  • 然后使用选择转换和删除数组列。

    数据预览:

现在使用Union转换合并行和列

数据预览:

现在,使用sink转换将数据加载到CSV

  • Sink settings在Sink中添加CSV数据集,并遵循以下设置。

输出:

相关问题