CombinePerKey

Pydoc Pydoc




組合集合中每個鍵的所有元素。

請參閱 Beam 程式設計指南 中的更多資訊。

範例

在以下範例中,我們建立一個包含產品 PCollection 的管線。然後,我們以多種方式應用 CombinePerKey 來組合 PCollection 中的所有元素。

CombinePerKey 接受一個函式,該函式將一個值列表作為輸入,並為每個鍵組合這些值。

範例 1:使用預定義的函式組合

我們使用函式 sum,它會接受一個數字的 iterable 並將它們加在一起。

範例 2:使用函式組合

我們定義一個函式 saturated_sum,它會接受一個數字的 iterable 並將它們加在一起,直到達到預定義的最大數字。

範例 3:使用 Lambda 函式組合

我們也可以使用 Lambda 函式來簡化範例 2

範例 4:使用多個引數組合

您可以將具有多個引數的函式傳遞給 CombinePerKey。它們會作為額外的位置引數或關鍵字引數傳遞給該函式。

在此範例中,Lambda 函式會接受 valuesmax_value 作為引數。

範例 5:使用 CombineFn 組合

組合元素更一般且最彈性的方式是使用繼承自 CombineFn 的類別。

您可以使用以下組合器轉換

另請參閱 GroupBy,它允許您一次組合多個欄位。

Pydoc Pydoc