0

我正在尝试在 Google Cloud Data Fusion 的牧马人中遵循自定义转换。

set-column column (parse-as-json :column 2 ) ? column =^ "[" : (parse-as-json :column 1 )

如果它是一个数组,我想将列解析为 JSON 的深度为 2,这意味着它是否以方括号 ([) 开头,否则深度为 1。我不确定parse-as-json指令中的冒号是否导致问题这里。

如果我将其更改为以下,则可以正常工作:-

set-column column 'a' ? column =^ "[" : 'b'

我也试过parse-as-json用反斜杠转义指令中的冒号,仍然没有用。我在这里做错了什么?请建议。

4

1 回答 1

0

我们目前不支持嵌套指令(即带有 parse-as-json 的 set-column)。

您可以尝试先复制列,然后解析深度为 1 的副本,然后解析深度为 2 的克隆。最后,您可以使用 set-column 选择正确的列。

例如,假设原始列名为“body”,并且深度 2 不以“[”开头时将生成 null,您可以执行以下操作:

copy body body_clone
parse-as-json body 1
parse-as-json body_clone 2
set-column final_result !body_clone_field ? body_field : body_clone_field
于 2020-07-21T20:20:37.097 回答