在数据流 (ADF) 中拆分 json 字符串列或展平转换

Split a json string column or flatten transformation in data flow (ADF)

我将以下 csv 文件复制到 ADF 中的数据流中。

数据列具有 json 格式,但它被视为字符串。我想将数据列展平为单独的行。我尝试了展平转换,但它不起作用,因为数据列不是 json。我该如何处理?我也试过split expression,也没用。谢谢

仅从您的屏幕截图,我们可以发现:

  1. Data中的数据不是JSON格式。
  2. 大多数数据看起来像数组。
  3. 'array' 有 9 个元素。

我必须将其视为“数组”,然后我们才能使用数据流 Derived Column 来展平数据。请在下面参考我的步骤:

源数据:

派生列表达式和设置:

将数据转为字符串并使用索引取值的表达式:

Data 1: split(substring(Data, 2, length(Data)-2), ",")[1]
Data 2: split(substring(Data, 2, length(Data)-2), ",")[2]
Data 3: split(substring(Data, 2, length(Data)-2), ",")[3]
Data 4: split(substring(Data, 2, length(Data)-2), ",")[4]
Data 5: split(substring(Data, 2, length(Data)-2), ",")[5]
Data 6: split(substring(Data, 2, length(Data)-2), ",")[6]
Data 7: split(substring(Data, 2, length(Data)-2), ",")[7]
Data 8: split(substring(Data, 2, length(Data)-2), ",")[8]
Data 9: split(substring(Data, 2, length(Data)-2), ",")[9]

派生列输出:

如果Data是标准的JSON格式,我们需要先把字符串转成JSON,然后用key取值。

HTH.