Apache Beam中的ParDo和FlatMap有什么区别?

6

ParDoFlatMap在Dataflow / Apache Beam中有区别吗?

我认为两者都将函数应用于传入的PCollection中的每个元素,并返回可迭代对象;但我想必定存在一些差异?

1个回答

14

FlatMap是一个更简单的操作,就像你从ParDo中期望的那样构建。如果这符合您的需求,那么它是一个很好的选择。

ParDo是逐个元素计算的较低级别构建块,具有其他功能,例如侧面输入多个输出集合访问当前窗口,一些真正低级别的回调函数用于启动和提交元素束等等。

在实践中,许多FlatMapParDo的使用最终都会得到类似的代码块,但我认为使用可用的最简单(最高级)转换最易读。


谢谢,很清楚。虽然值得一提的是,Python示例使用带有侧面输入的FlatMap:https://beam.apache.org/documentation/programming-guide/。对于其他情况,您建议使用`ParDo`。 - Maximilian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接