使用 Azure 数据流展平和解析 Json
Flatten and Parsing Json using Azure Data Flow
我有 table 有以下数据
Code Info
AE [{"key":"eng","value":"ABC"},{"key":"fra","value":"DEF"}]
US [{"key":"eng","value":"XYZ"},{"language":"dut","value":"123"}]
UK [{"key":"arb","value":"KLM"}]
我想使用 Azure 数据流对其进行转换,如下所示
Code InfoKey InfoValue
AE eng ABC
AE fra DEF
US eng XYZ
US dut 123
UK arb KLM
我尝试过使用展平转换、解析转换,但都没有成功。当我在 Column 'Info' 上使用展平转换时,它给出了相同的输出。当我尝试解析 json 时,它根本无法转换数据。
有人可以帮助我们如何转换这些数据。
谢谢
我重现了该场景并且能够将数据解析为多列。
步骤1:
• 将源的输出添加到派生列转换并将 JSON 值行 (Info) 拆分为多个数组。
• 在应用拆分以获得正确的数组表示之前,我在这里替换了几个值。
split(replace(replace(replace(Info, '[', ''),']',''),'},','}},'),'},')
• 派生列预览:代码 AE 的信息拆分为数组 Info1 & Info2.
步骤2:
• 将派生列的输出连接到 Flatten
转换以将数组展平为多行。
• Select Info[] Unroll by 和 Unroll root将 Info 数组展平为多行。
• 展平变换的输出
步骤3:
• 将 flatten
输出连接到 parse
转换以将数组值解析为多列。
• Select 表达式中要解析 的列,并使用输出列类型中的类型解析列名称。
• 解析转换的输出:数据被解析为 2 列键和值。
• 代码 US 和值 123 有一个 NULL 值,这是因为来源在第二个数组中没有代码 US 的 key 列。
Step4:
接收器输出:
我有 table 有以下数据
Code Info
AE [{"key":"eng","value":"ABC"},{"key":"fra","value":"DEF"}]
US [{"key":"eng","value":"XYZ"},{"language":"dut","value":"123"}]
UK [{"key":"arb","value":"KLM"}]
我想使用 Azure 数据流对其进行转换,如下所示
Code InfoKey InfoValue
AE eng ABC
AE fra DEF
US eng XYZ
US dut 123
UK arb KLM
我尝试过使用展平转换、解析转换,但都没有成功。当我在 Column 'Info' 上使用展平转换时,它给出了相同的输出。当我尝试解析 json 时,它根本无法转换数据。
有人可以帮助我们如何转换这些数据。
谢谢
我重现了该场景并且能够将数据解析为多列。
步骤1:
• 将源的输出添加到派生列转换并将 JSON 值行 (Info) 拆分为多个数组。
• 在应用拆分以获得正确的数组表示之前,我在这里替换了几个值。
split(replace(replace(replace(Info, '[', ''),']',''),'},','}},'),'},')
• 派生列预览:代码 AE 的信息拆分为数组 Info1 & Info2.
步骤2:
• 将派生列的输出连接到 Flatten
转换以将数组展平为多行。
• Select Info[] Unroll by 和 Unroll root将 Info 数组展平为多行。
• 展平变换的输出
步骤3:
• 将 flatten
输出连接到 parse
转换以将数组值解析为多列。
• Select 表达式中要解析 的列,并使用输出列类型中的类型解析列名称。
• 解析转换的输出:数据被解析为 2 列键和值。
• 代码 US 和值 123 有一个 NULL 值,这是因为来源在第二个数组中没有代码 US 的 key 列。
Step4:
接收器输出: