使用 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 byUnroll root将 Info 数组展平为多行。

• 展平变换的输出

步骤3:

• 将 flatten 输出连接到 parse 转换以将数组值解析为多列。

• Select 表达式中要解析 的列,并使用输出列类型中的类型解析列名称。

解析转换的输出:数据被解析为 2 列键和值。

• 代码 US 和值 123 有一个 NULL 值,这是因为来源在第二个数组中没有代码 US 的 key 列。

Step4:

接收器输出: