Nifi:我可以对json文件值进行数学运算吗?

时间:2018-11-15 00:26:31

标签: apache-nifi

我有一个JSON文件作为处理器的输入。像这样:

{"x" : 10, "y" : 5}

我可以对这些值进行数学运算,而不是编写自定义处理器吗?我需要做类似的事情

( x / y ) * 3

^只是一个例子。

我需要将结果保存到输出文件中。

更新: 这是我在generateFlowFile处理器中的文字:

X|Y
1|123
2|111

这是我的AVRO模式:

{
 "name": "myschema",
 "namespace": "nifi",
 "type": "record",
 "fields": [
 {"name": "X" , "type": "int"},
 {"name": "Y" , "type": "int"} ]
}

当我将上述类型更改为字符串时,它可以正常工作,但无法对字符串执行数学运算。

仅供参考,我在“模式访问策略”中选择了“使用模式名称属性”

1 个答案:

答案 0 :(得分:1)

使用QueryRecord处理器。

  • 配置/启用记录读取器/写入器控制器服务
  • 将Avro模式定义为read传入的Json。
  • 将Avro架构定义为write以所需格式的查询结果。

在查询记录处理器中将新属性添加为

sql

select  ( x / y ) * 3 as div from FLOWFILE

查询记录处理器输出流文件将采用配置的Record Writer格式。