我正在Apache Nifi中读取CSV文件,现在我想添加一列,即序列号,此列将具有CSV文件中所有行的序列号。因此,如果我有10行,序列号将从1到10。我如何通过Nifi实现此目的? 我尝试在更新处理器中使用getStateValue,但这给了我一个静态数字。我的UpdateAttribute和UpdateRecord如下所示。
答案 0 :(得分:2)
使用QueryRecord处理器,并且处理器支持Apache-Calcite SQL language。
使用new dynamic property
窗口子句将 ROW_NUMBER()
添加到QueryRecord处理器。
示例:
select *,ROW_NUMBER() over(<optional orderby clause>) as seq from FLOWFILE
在查询记录处理器中定义RecordReader
和 RecordWriter
控制器服务,以便在seq column
中包含 avro schema
。< / p>
queryrecord
处理器的输出流文件现在将seq column
包含到流文件中。