在数据流 (ADF) 中拆分 json 字符串列或展平转换
Split a json string column or flatten transformation in data flow (ADF)
我将以下 csv 文件复制到 ADF 中的数据流中。
数据列具有 json 格式,但它被视为字符串。我想将数据列展平为单独的行。我尝试了展平转换,但它不起作用,因为数据列不是 json。我该如何处理?我也试过split expression,也没用。谢谢
仅从您的屏幕截图,我们可以发现:
Data
中的数据不是JSON格式。
- 大多数数据看起来像数组。
- '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.
我将以下 csv 文件复制到 ADF 中的数据流中。
数据列具有 json 格式,但它被视为字符串。我想将数据列展平为单独的行。我尝试了展平转换,但它不起作用,因为数据列不是 json。我该如何处理?我也试过split expression,也没用。谢谢
仅从您的屏幕截图,我们可以发现:
Data
中的数据不是JSON格式。- 大多数数据看起来像数组。
- '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.