Apache Flink中的JoinFunction
和CoGroupFunction
有什么区别?语义和执行方式有何不同?
最佳答案
Join和CoGroup转换都将关键字段上的两个输入联接在一起。不同之处在于用户函数的调用方式:
JoinFunction
,这些记录具有相同的键字段值。此行为与相等内部联接非常相似。 CoGroupFunction
,这两个输入的所有记录的键字段值都相同。如果输入没有某个键值的记录,则传递一个空的迭代器。除其他事项外,CoGroup转换还可用于内部和外部相等联接。因此,它比Join转换更通用。 查看Join和CoGroup的执行策略,可以使用基于排序和哈希的连接策略执行Join,而因为CoGroup始终使用基于排序的策略执行。因此,联接通常比联合组更有效,如果可能,应该首选联接。
关于apache-flink - Apache Flink的JoinFunction和CoGroupFunction有何区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36471523/