是否可以使用apache nifi对文件中的某些值进行数学运算?

时间:2019-07-09 11:25:41

标签: apache-nifi hortonworks-dataflow

我正在从URL使用API​​获取一些数值数据,并且正在寻找一种方法来在将数据放入文件目录之前在apache nifi中进行一些数学运算。现在已经谢谢了。

顺便说一句,我正在使用InvokeHTTP处理器来获取数据并将文件放置在我正在使用PutFile处理器的某个地方。我搜索了一些相关网站,但找不到可行的方法。

3 个答案:

答案 0 :(得分:0)

尝试使用QueryRecord处理器并定义 Record Reader/Writer 控制器服务来读取/写入流文件。

    通过对流文件进行数学运算,使用Apache calcite SQL query
  • QueryRecord 处理器添加新属性。

  • SQL查询的结果将以您想要的格式添加到 outgoing flowfile

答案 1 :(得分:0)

最终答案取决于您正在使用的数据是在FlowFile的内容中还是在属性中。如果数据足够小且仅需几次操作,则建议的方法是将数据作为属性使用,并使用NiFi的表达语言进行转换。

Apache文档[2]中有一部分数学运算[1]。操作范围从简单的操作数(如加号/减号)到公开java.lang.Math静态方法。

[1] https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html#numbers [2] https://nifi.apache.org/docs.html

答案 2 :(得分:0)

如果要获取整个文件然后运行操作,可以尝试ExecuteStreamCommand。另外,您可以在流文件上随意修改变量-取决于操作的大小。

例如,如果您有一些初始变量,则可以将它们包含在文件名中,然后将其提取,在flowfile变量中运行操作,然后添加到原始文件的底部