首页 > 解决方案 > 使用参数作为warngler的指令

问题描述

在云数据融合牧马人中,我可以使用指令执行多个转换。我正在研究的场景是有一组指令可能会随着每次执行而改变。

例如

一些指令。. set-column :concat_col exp:{concat(col1,col2)} hash concat_col SHA-256 true 。. 其他一些指令

我想参数化指令的一部分。我使用了以下步骤

一些指令。. ${custom_directive} 。. 其他一些指令

如果我只传递 1 个指令作为参数值,即 set-column :concat_col exp:{concat(col1,col2)}

但是,当我尝试传递超过 1 个指令时,管道会失败。

我已经为参数值尝试了以下格式

set-column :concat_col exp:{concat(col1,col2)};hash concat_col SHA-256 true 抛出错误预期的列名,但得到一个标识符

set-column :concat_col exp:{concat(col1,col2)}\r\nhash concat_col SHA-256 true 管道失败,预期错误;但是得到了\r

set-column :concat_col exp:{concat(col1,col2)} \r\nhash concat_col SHA-256 true 成功但不执行哈希

"set-column :concat_col exp:{concat(col1,col2)}\r\nhash concat_col SHA-256 true" 管道成功但不执行这两个步骤

set-column :concat_col exp:{concat(col1,col2)},hash concat_col SHA-256 true 管道失败,出现预期错误;但是得到了,

有没有办法可以将多行指令传递给单个参数?

标签: google-cloud-data-fusion

解决方案


如果我们通过 HTTP 请求发送参数,那么在 wrangler 中为单个参数提供多个指令是可行的。指令的每一行都需要用 \r\n 字符分隔。

奇怪的是,当我们在运行时 args 中手动输入值时它不起作用


推荐阅读