5
Apache Flink中的JoinFunction
和CoGroupFunction
有什麼區別?語義和執行有何不同?Apache Flink的JoinFunction和CoGroupFunction如何不同?
Apache Flink中的JoinFunction
和CoGroupFunction
有什麼區別?語義和執行有何不同?Apache Flink的JoinFunction和CoGroupFunction如何不同?
這兩個,連接和CoGroup轉換加入關鍵字段上的兩個輸入。差異是如何在用戶函數的調用:
JoinFunction
與對從具有鍵字段的值相同的兩個輸入匹配的記錄的。這種行爲與平等內連接非常相似。CoGroupFunction
和迭代器,這些記錄的鍵值字段值相同。如果輸入沒有某個鍵值的記錄,則傳遞一個空的迭代器。 CoGroup轉換可以用於內部和外部等式聯接等。因此它比Join轉換更通用。查看Join和CoGroup的執行策略,Join可以使用基於排序和基於散列的連接策略執行,其中CoGroup總是使用基於排序的策略執行。因此,聯接通常比cogroup更有效,如果可能的話,應該首選聯接。