Apache nifi nifi:如何在csv文件中合并多个列?

Apache nifi nifi:如何在csv文件中合并多个列?,apache-nifi,Apache Nifi,nifi版本:1.5 输入文件: col1,col2,col3,col4,col5,col6 a,hr,nat,REF,6,2481 a,hr,nat,TDB,6,1845 b,IT,raj,NAV,6,2678 我想将最后三列合并为:delimiter和separator by/based col1 预期产出: col1,col2,col3,col4 a,hr,nat,REF:6:2481/TDB:6:1845 b,IT,raj,NAV:6:2678 我无法找到解决方案,因为很多响应都是基

nifi版本:1.5

输入文件:

col1,col2,col3,col4,col5,col6
a,hr,nat,REF,6,2481
a,hr,nat,TDB,6,1845
b,IT,raj,NAV,6,2678
我想将最后三列合并为:delimiter和separator by/based col1

预期产出:

col1,col2,col3,col4
a,hr,nat,REF:6:2481/TDB:6:1845
b,IT,raj,NAV:6:2678
我无法找到解决方案,因为很多响应都是基于合并两个文件。 有更好的方法吗


tia.

我想您首先需要一个分区记录处理器,它带有分区字段
col1
,这将把流文件分割成多个流文件,
col1
的每个不同值都将位于其自己的流文件中。如果前3列用于分区,则可以将所有三列添加为分区的用户定义属性


然后,无论您使用脚本解决方案还是QueryRecord(如果方解石支持“按组”连接),内存使用应该更少,因为您一次只处理一个流文件,其中的行已由指定的组关联。

cvs文件是否很大?大约它将在csv文件中包含10万条记录。我看不到直接的方法,只有脚本。。。但由于文件太大,这可能会占用大量内存。@daggett我正计划使用脚本编写方式。因为我懂python,不是jython。似乎executestreamcommand/executeprocess可以像命令行一样执行python。Jython使用executescript处理器。我的理解正确吗?您是否有将流文件读取到ExecuteStream命令的参考资料?谢谢您的回复。这项工作从FLOWFILE而不是CONCAT中选择col4 | |':'| | col5 | |':'| | col6。