DoFnTester是Apache Beam中的一个测试工具,用于测试DoFn函数的行为和输出。在Apache Beam 2.0.0及之后的版本中,DoFnTester不再支持在finishBundle()方法中输出数据。
这个变化是由于Apache Beam在2.0.0版本中引入了新的执行模型,称为Splittable DoFn。Splittable DoFn允许将输入数据分割成多个部分并并行处理,以提高处理性能。在Splittable DoFn中,finishBundle()方法被废弃,不再支持输出数据。
Splittable DoFn的设计目标是提高处理性能和可伸缩性,通过将输入数据分割成多个部分并行处理,可以更好地利用计算资源。然而,这也导致了一些限制,例如无法在finishBundle()方法中输出数据。
如果您需要在DoFn函数的finishBundle()方法中输出数据,您可以考虑使用其他方法来实现。例如,您可以在DoFn函数的processElement()方法中收集输出数据,并在整个Bundle处理完成后进行处理。或者,您可以将输出数据发送到外部系统或存储中,以供后续处理和分析。
总结起来,DoFnTester不再支持在finishBundle()方法中输出数据是因为Apache Beam引入了新的执行模型Splittable DoFn,为了提高处理性能和可伸缩性,对输出数据的处理做出了一些限制。如果您需要在finishBundle()方法中输出数据,可以考虑使用其他方法来实现。
领取专属 10元无门槛券
手把手带您无忧上云