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 文件列

kettle 7.0 部署报错 A JAVA Eception has occurred

打开kettle时报错