首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NiFi处理器对csv数据进行分组

问使用NiFi处理器对csv数据进行分组
EN

Stack Overflow用户
提问于 2017-03-17 10:32:14
回答 1查看 916关注 0票数 3

我有一组4列csv数据,其中记录对于5 rows.Then的第一列具有相同的值,对于接下来的5行,第一列的值仍然相同,依此类推。

样本数据:

代码语言:javascript
复制
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
...........

但有时这些记录是任意输入的,因为:

代码语言:javascript
复制
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处理器根据其第一列对此类数据进行分组?

任何答案都会有帮助。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-17 13:57:40

您应该能够使用分组正则表达式对RouteText处理器执行此操作,该表达式如下:

“指定一个正则表达式,对每一行进行计算,以确定应放在哪个组中。正则表达式必须至少有一个定义行的组的捕获组。如果正则表达式中存在多个捕获组,则该组来自所有捕获组。两行将不会放在同一个FlowFile中,除非它们对组具有相同的值(或者两行都不匹配正则表达式)。例如,要按第一列将CSV中的所有行组合在一起,我们可以将此值设置为"(.?) .“。具有相同组但不同关系的两行将永远不会放在同一个FlowFile中。“

我认为您可以将它与匹配正则表达式的匹配策略结合使用,只需将.*用于该表达式,以便每一行都匹配。

然后,对于分组表达式,使用上面的示例按第一列(.?)分组。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42855149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档