2016-04-07 40 views

回答

11

这两个,连接和CoGroup转换加入关键字段上的两个输入。差异是如何在用户函数的调用:

  • 的加入改造调用JoinFunction对从具有键字段的值相同的两个输入匹配的记录的。这种行为与平等内连接非常相似。
  • CoGroup转换在两个输入的所有记录中调用CoGroupFunction迭代器,这些记录的键值字段值相同。如果输入没有某个键值的记录,则传递一个空的迭代器。 CoGroup转换可以用于内部和外部等式联接等。因此它比Join转换更通用。

查看Join和CoGroup的执行策略,Join可以使用基于排序和基于散列的连接策略执行,其中CoGroup总是使用基于排序的策略执行。因此,联接通常比cogroup更有效,如果可能的话,应该首选联接。