我有一组4列csv数据,其中记录对于5 rows.Then的第一列具有相同的值,对于接下来的5行,第一列的值仍然相同,依此类推。
样本数据:
a,21,51,xxx
a,22,52,xxx
a,23,53,xxx
a,24,54,xxx
a,25,55,xxx
b,21,61,yyy
b,22,62,yyy
b,23,63,yyy
b,24,64,yyy
b,25,65,yyy
...........但有时这些记录是任意输入的,因为:
a,21,51,xxx
a,22,52,xxx
a,23,53,xxx
b,21,61,yyy
b,22,62,yyy
a,24,54,xxx
a,25,55,xxx
b,23,63,yyy
b,24,64,yyy
b,25,65,yyy
...........是否有任何方法可以使用NiFi处理器根据其第一列对此类数据进行分组?
任何答案都会有帮助。
谢谢
发布于 2017-03-17 13:57:40
您应该能够使用分组正则表达式对RouteText处理器执行此操作,该表达式如下:
“指定一个正则表达式,对每一行进行计算,以确定应放在哪个组中。正则表达式必须至少有一个定义行的组的捕获组。如果正则表达式中存在多个捕获组,则该组来自所有捕获组。两行将不会放在同一个FlowFile中,除非它们对组具有相同的值(或者两行都不匹配正则表达式)。例如,要按第一列将CSV中的所有行组合在一起,我们可以将此值设置为"(.?) .“。具有相同组但不同关系的两行将永远不会放在同一个FlowFile中。“
我认为您可以将它与匹配正则表达式的匹配策略结合使用,只需将.*用于该表达式,以便每一行都匹配。
然后,对于分组表达式,使用上面的示例按第一列(.?)分组。
https://stackoverflow.com/questions/42855149
复制相似问题