如何在通过管道从 CSV 文件映射数据流派生列时传递用于列模式匹配的数组?

How to pass an array for column pattern matching in mapping dataflow derived column from CSV file through pipeline?

我有一个带有派生列的映射数据流,我想在其中使用列模式来匹配使用 in()

的列数组

数据流在管道中执行,我根据从包含逗号分隔字符串的单行 CSV 文件填充的变量设置参数 $owColList_md5

如果我在 CSV file/variable 中有一个单独的列名称用单引号括起来并勾选了 "Expression" 复选框,它就可以工作。 问题是让它与多列一起工作。似乎存在解析问题,变量中有多个项目,每个项目都用单引号括起来,或者可能用逗号分隔它们。这通常会导致使用 "store is not defined" 等消息执行数据流时出错

我试过在 CSV 文件中包含“'col1'”、“'col2'”和 "col1"、"col2"(2 个单引号和双引号)。我也尝试过让文件不带引号,尝试在派生列模式表达式中用转义引号替换逗号(使用 ),但没有成功。

如何根据数据流参数在派生列中填充此数组,该数据流参数基于 CSV 文件中的逗号分隔字符串/来自管道的列名变量?

虽然不支持数组类型作为数据流参数,但如果使用 instr() 函数进行匹配,则可以传入逗号分隔的字符串。

假设您有两列,col1 和 col2。传入值为 '"col1","col2"'.

的参数

然后使用instr($<yourparamname>, '"' + name + '"') > 0查看您传入的字符串中是否存在列名。注意:您不需要双引号,但如果您的列名是其他列的子集,则双引号很有用列名,例如 id1 和 id11.

希望对您有所帮助!