如何在 Pentaho 勺子中连接字符串?

Posted

技术标签:

【中文标题】如何在 Pentaho 勺子中连接字符串?【英文标题】:How do I concatenate string in Pentaho spoon? 【发布时间】:2012-09-19 09:21:28 【问题描述】:

我是 Pentaho(今天安装)的新手。我能够在 Spoon 中进行基本的转换。现在我需要做一些事情,我不知道该怎么做。

我的输入看起来像

2012-09-17|garima|fbhjgjhgj87687jghgj88jgjj|garima#1347868164626|::ffff:120.56.132.137

第三个字段是一个 ID,我需要从 REST API 获取一些信息

http://api.app.com/app/api/v1/feature/fbhjgjhgj87687jghgj88jgjj

我需要在 Spoon 中做什么才能完成这项工作?

此外,数据返回将以 json 格式。我该如何解析?

【问题讨论】:

【参考方案1】:

您应该首先使用CSV File Input 获取输入,并使用| 作为分隔符。然后您可以将第三个字段作为字符串获取。

接下来,您可能需要使用String operations 步骤从该字符串中删除所有空格。查看Remove special character 列,然后选择space

然后你需要将它与你的http地址http://api.app.com/app/api/v1/feature/连接起来。为此,您将使用Calculator 步骤。在这一步首先创建一个新的临时字段tmpAddr,操作Define a constant value for ...(或类似的东西,对不起我的勺子是葡萄牙语)。在Field A 列中,您将填写您的http 地址。这是一个很好的做法,在您完成这项工作后,将您的地址设置为系统变量,因此如果它发生更改,您无需在转换的任何地方替换它(查看菜单 Edit -> System Variables)。

现在在同一个Calculator 步骤上创建另一个字段,比如MyAddress,操作为A+B。为Field A 选择您刚刚创建的字段tmpAddr,为Field B 选择您输入的第三个字段。

现在,在您的直播中,您应该将完整地址作为字段MyAddress。连接REST client 步骤。标记Accept URL from field 并选择字段MyAddressURL Field Name。将Application Type 设置为JSON。将Result Fieldname设置为MyResult

如果您需要进一步的 JSON 解析,您可以添加 Json input 步骤。设置Source is defined in a field 并选择字段MyResultGet Source from field

【讨论】:

太棒了。非常好的一步一步的解释,它就像一个魅力:)【参考方案2】:

另一种方法是使用“替换字符串”步骤来附加字符串。

    将“使用正则表达式”设置为 Y 将“搜索”设置为(.*) 将“替换为”设置为http://api.app.com/app/api/v1/feature/$1 将“整个单词”设置为 Y

正则表达式中的括号设置了一个捕获组,然后您可以使用 $X 语法将其插入到替换字符串中

【讨论】:

以上是关于如何在 Pentaho 勺子中连接字符串?的主要内容,如果未能解决你的问题,请参考以下文章

pentaho 勺子:如何获取文件名作为值?

pentaho 勺子/PDI:如何创建具有当前日期的文件夹?

你可以在 Pentaho 勺子工具中运行 jar 文件吗?

使用 pentaho 勺子每天更新数据库中的数据

Pentaho 6 勺子错误

如何使用Pentaho勺子将数据从MySQL数据库推送到Facebook网页