Apache nifi 我可以对json文件进行数学运算吗?
我有一个JSON文件作为处理器的输入。大概是这样的:Apache nifi 我可以对json文件进行数学运算吗?,apache-nifi,Apache Nifi,我有一个JSON文件作为处理器的输入。大概是这样的: {"x" : 10, "y" : 5} 我可以对这些值进行数学运算而不是编写自定义处理器吗?我需要做一些类似的事情 ( x / y ) * 3 ^只是一个例子 我需要将结果保存到输出文件中 更新: 这是我在generateFlowFile processor中的文本: X|Y 1|123 2|111 这是我的AVRO模式: { "name": "myschema", "namespace": "nifi", "type": "re
{"x" : 10, "y" : 5}
我可以对这些值进行数学运算而不是编写自定义处理器吗?我需要做一些类似的事情
( x / y ) * 3
^只是一个例子
我需要将结果保存到输出文件中
更新:
这是我在generateFlowFile processor中的文本:
X|Y
1|123
2|111
这是我的AVRO模式:
{
"name": "myschema",
"namespace": "nifi",
"type": "record",
"fields": [
{"name": "X" , "type": "int"},
{"name": "Y" , "type": "int"} ]
}
当我将上述类型更改为字符串时,它工作正常,但我无法对字符串执行数学运算
仅供参考,我已在架构访问策略中选择了“使用架构名称属性”
- 配置/启用记录读写器控制器服务
- 将Avro模式定义为
传入的Json读取
- 定义Avro模式,以
查询结果以所需格式写入
select ( x / y ) * 3 as div from FLOWFILE
来自查询记录处理器的输出流文件将采用配置的记录编写器格式。使用处理器
- 配置/启用记录读写器控制器服务
- 将Avro模式定义为
传入的Json读取
- 定义Avro模式,以
查询结果以所需格式写入
select ( x / y ) * 3 as div from FLOWFILE
来自查询记录处理器的输出流文件将采用配置的记录编写器格式。谢谢您的回答!我尝试了同样的方法,但是当模式中的字段类型为“int”时,我得到了一个错误。错误是:由于输入字符串“x”,无法读取“x”输入中的下一条记录。这只发生在int或long类型。但是,如果我改为字符串,并从FLOWFILE中使用sql作为
selct*,它工作得很好。@NoName,我认为问题来自Avro模式
,请使用您现在使用的示例数据
和读写器Avro模式
更新您的问题。所以我会尽力帮助你解决这个问题@NoName,我尝试了您的示例记录
,并在此处上载了模板:将此模板上载到您的实例,并根据您的案例更改avro模式。感谢您的回答!我尝试了同样的方法,但是当模式中的字段类型为“int”时,我得到了一个错误。错误是:由于输入字符串“x”,无法读取“x”输入中的下一条记录。这只发生在int或long类型。但是,如果我改为字符串,并从FLOWFILE中使用sql作为selct*,它工作得很好。@NoName,我认为问题来自Avro模式
,请使用您现在使用的示例数据
和读写器Avro模式
更新您的问题。所以我会尽力帮助你解决这个问题@NoName,我尝试了您的示例记录
,并在此处上载了模板:将此模板上载到您的实例,并根据您的案例更改avro模式。