如何使用Spring Batch进行聚合?

詹妮史密斯

我试图弄清楚如何使用Spring Batch进行聚合。例如,我有一个包含名称列表的CSV文件:

name
John
Amy
John
Ryan

我想在文本文件中计算名称:

name, count
Amy, 1
John, 2
Ryan, 1

从我从Spring Batch中学到的知识来看,ETL批处理过程(itemReader-> ItemProcessor-> ItemWriter)更像是map-reduce语言中的映射阶段。如何在Spring Batch中进行reduce(aggregation)阶段?

Spring Batch是正确使用的工具吗?还是应该为此使用Spark?谢谢。

Mahmoud Ben Hassine

ItemProcessor典型地用于过滤器,验证或地图数据从一种类型到另一种,但也可以用于任何类型的等你的情况计数处理的。对于您的示例,项目处理器可以name -> count在管道中保存名称的映射并对其进行计数。

面向块的处理模型不会直接映射到map-reduce模型。但是,分区是您要寻找的。StepExecutionSplitterStepExecutionAggregator是做这样的操作地图,减少本地或远程的关键概念。有关更多详细信息,请参见参考文档的“分区”部分。

有一个与此类似的问题,我在这里添加以供参考:如何在Spring Batch作业中汇总全部数据集?

希望这可以帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章