Pentaho Kettle 修改的 Java 脚本 setVariable
Posted
技术标签:
【中文标题】Pentaho Kettle 修改的 Java 脚本 setVariable【英文标题】:Pentaho Kettle Modified Java Script setVariable 【发布时间】:2012-10-25 14:49:23 【问题描述】:我想从数据流中的现有字段动态创建一个变量(不是新字段),然后修改该变量。
原因是,我需要在 Sql 语句的 IN
子句中使用的字符串列表周围加上单引号 '
。 Kettle 消除了字段中的单引号,但它们保留在变量中。我最好的猜测是在修改后的 Java 脚本中使用 setVariable,但从那里我被难住了。
【问题讨论】:
您能否提供使用的步骤,并说明在何处或如何消除单引号?我经常输出包含单引号字段的文本文件——Kettle 不会从流字段或输出中消除它们。 【参考方案1】:我必须没有足够的代表来将文件附加到答案。太糟糕了,因为我有一个做得很好的 ktr。
我首先将“'”作为新字段添加到行中。然后,我将具有要转换为列表的值的行传递到 Group By 步骤中。我选择“连接字符串分隔符”的聚合并使用值','
,并为结果赋予一个新名称,如“列表”。
然后我将该结果行传递给计算为 A + B + C 的计算器步骤。我为值 A 和 C 指定“'”字段,为值 B 指定列表字段。然后我将该结果传递给设置变量步骤。
在父作业中,我得到一个看起来与您预期一样的变量:'val1','val2','val3'
。无需 javascript。
【讨论】:
以上是关于Pentaho Kettle 修改的 Java 脚本 setVariable的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Pentaho 数据集成 (Kettle) 中的“用户定义的 Java 类”步骤中获取所有参数
Pentaho Data Integration (Kettle) 简介
从 Pentaho Kettle Job 的 java api 调用中获取数据
Pentaho Kettle:如何动态获取 JSON 文件列