2016-04-07 39 views

回答

11

這兩個,連接和CoGroup轉換加入關鍵字段上的兩個輸入。差異是如何在用戶函數的調用:

  • 的加入改造調用JoinFunction對從具有鍵字段的值相同的兩個輸入匹配的記錄的。這種行爲與平等內連接非常相似。
  • CoGroup轉換在兩個輸入的所有記錄中調用CoGroupFunction迭代器,這些記錄的鍵值字段值相同。如果輸入沒有某個鍵值的記錄,則傳遞一個空的迭代器。 CoGroup轉換可以用於內部和外部等式聯接等。因此它比Join轉換更通用。

查看Join和CoGroup的執行策略,Join可以使用基於排序和基於散列的連接策略執行,其中CoGroup總是使用基於排序的策略執行。因此,聯接通常比cogroup更有效,如果可能的話,應該首選聯接。