GroupBy
![]() |
取得元素集合,並產生依據這些元素的屬性分組的集合。
與 GroupByKey
不同,鍵值是從元素本身動態建立的。
分組範例
在以下範例中,我們建立一個具有水果 PCollection
的管線。
我們使用 GroupBy
依據名稱的第一個字母將所有水果分組。
如果需要,我們可以依據由多個屬性組成的複合鍵值分組。
產生的鍵值是一個具名的元組,具有兩個請求的屬性,而值會相應地分組。
如果想要分組的屬性是一個屬性,則可以將字串傳遞至 GroupBy
以取代可呼叫的運算式。
可以混合和比對屬性和運算式,例如
聚合
分組通常與聚合結合使用,而 GroupBy
轉換的 aggregate_field
方法可以用於輕鬆完成此操作。此方法採用三個參數:要聚合的欄位(或運算式)、要用來聚合的 CombineFn
(或關聯的 callable
),最後是要儲存結果的欄位名稱。例如,假設有人想要計算要購買的每種水果的數量。可以寫
與 GroupBy
中的參數類似,也可以聚合多個欄位和運算式。
當然,也可以多次聚合相同的欄位。此範例也說明了全域分組,因為分組鍵值為空。
相關轉換
- CombinePerKey 用於使用單一 CombineFn 組合。
- GroupByKey 用於使用已知的鍵值分組。
- CoGroupByKey 用於多個輸入集合。
![]() |
上次更新於 2024/10/31
您是否找到了您要找的所有內容?
它們是否都有用且清楚?是否有任何您想要變更的地方?請告訴我們!