Parallel processing 如何在spring批处理中将大文件拆分为小文件进行并行处理?

Parallel processing 如何在spring批处理中将大文件拆分为小文件进行并行处理?,parallel-processing,spring-batch,partition,Parallel Processing,Spring Batch,Partition,我们有一个可以逻辑拆分的大文件(不是范围,而是通过出现下一个头记录) 比如说 HeaderRecord1 …大量详细记录 HeaderRecord2 …大量详细记录 等等 我们希望在HeaderRecord级别将文件拆分为多个小文件,并并行处理它们 如何在春季批次中实现这一点?当我在google上搜索时,我遇到了Systemcommandtasklet,并使用Linux/Unix Split命令进行拆分 这是最好的办法吗?Spring批处理中是否有任何分区选项 感谢并问候您需要创建一个计算每个逻

我们有一个可以逻辑拆分的大文件(不是范围,而是通过出现下一个头记录)

比如说

HeaderRecord1
…大量详细记录
HeaderRecord2
…大量详细记录
等等

我们希望在HeaderRecord级别将文件拆分为多个小文件,并并行处理它们

如何在春季批次中实现这一点?当我在google上搜索时,我遇到了Systemcommandtasklet,并使用Linux/Unix Split命令进行拆分

这是最好的办法吗?Spring批处理中是否有任何分区选项


感谢并问候

您需要创建一个计算每个逻辑分区的索引(开始/结束索引)的自定义。然后使用一个自定义项读取器(可以扩展
FlatFileItemReader
),它只读取给定分区的行(并忽略其他行)。

我已经实现了上面提到的内容,但是,我得到了
org.springframework.batch.item.ItemStreamException:无法将资源转换为文件:[class path resource][input1.csv]
写入输出文件时出错。我观察到只有在使用
分区器时才会发生这种情况,只要使用“FlatFileItemWriter”就可以了。你知道吗?