我是Pentaho的新手(今天安装)。我能够在Spoon中进行基本的转换。现在我需要做一些事情,我无法弄清楚如何。
我的输入看起来像
2012-09-17|garima|fbhjgjhgj87687jghgj88jgjj|garima#1347868164626|::ffff:120.56.132.137
第3个字段是一个ID,我需要从REST API获取一些信息
http://api.app.com/app/api/v1/feature/fbhjgjhgj87687jghgj88jgjj
在Spoon中我需要做什么才能完成这项工作?
此外,数据返回将采用json格式。我该如何解析?
答案 0 :(得分:8)
您应首先使用CSV File Input
作为分隔符,使用|
获取输入。然后你可以将第3个字段作为字符串。
接下来,您可能需要使用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
第3个字段。
现在,在您的信息流中,您应该将完整地址作为字段MyAddress
。连接REST client
步骤。标记Accept URL from field
并选择字段MyAddress
作为URL Field Name
。将Application Type
设为JSON
。将Result Fieldname
设为MyResult
。
如果您需要进一步的JSON解析,可以添加Json input
步骤。设置Source is defined in a field
并选择字段MyResult
为Get Source from field
。
答案 1 :(得分:2)
另一种方法是使用“替换字符串”步骤来附加字符串。
(.*)
http://api.app.com/app/api/v1/feature/$1
正则表达式中的括号设置了一个捕获组,然后您可以使用$ X语法将其插入到替换字符串中