全域合併
![]() |
合併集合中的所有元素。
請參閱Beam 程式設計指南中的更多資訊。
範例
在以下範例中,我們建立一個具有農產品 PCollection
的管線。然後,我們以多種方式套用 CombineGlobally
來合併 PCollection
中的所有元素。
CombineGlobally
接受一個函數,該函數將元素的 iterable
作為輸入,並將它們合併以返回單個元素。
範例 1:使用函式合併
我們定義一個函數 get_common_items
,它將集合的 iterable
作為輸入,並計算這些集合的交集(共同項目)。
範例 2:使用 lambda 函式合併
我們也可以使用 lambda 函數來簡化範例 1。
範例 3:使用多個引數合併
您可以將具有多個引數的函數傳遞給 CombineGlobally
。它們會以額外的位置引數或關鍵字引數的形式傳遞給函數。
在此範例中,lambda 函數將 sets
和 exclude
作為引數。
範例 4:使用 CombineFn
合併
合併元素更通用的方法,也是最靈活的方法,是使用繼承自 CombineFn
的類別。
CombineFn.create_accumulator()
:這會建立一個空的累加器。例如,總和的空累加器為0
,而乘積(乘法)的空累加器為1
。CombineFn.add_input()
:每個元素呼叫一次。它會採用一個累加器和一個輸入元素,將它們合併並傳回更新的累加器。CombineFn.merge_accumulators()
:可能會並行處理多個累加器,因此此函數有助於將它們合併到單個累加器中。CombineFn.extract_output()
:它允許在提取結果之前進行額外的計算。
相關轉換
您可以使用以下合併器轉換
![]() |
上次更新時間:2024/10/31
您是否找到您想要的一切?
所有內容都實用且清晰嗎?您是否有任何想要變更的內容?請告訴我們!