CoGroupByKey
![]() |
依據鍵值彙總所有輸入元素,並允許下游處理使用與鍵值相關的所有值。雖然 GroupByKey
在單一輸入集合上執行此操作,因此只處理單一類型的輸入值,但 CoGroupByKey
會在多個輸入集合上執行。因此,每個鍵值的結果是元組,其中包含每個輸入集合中與該鍵值相關的值。
請參閱Beam 程式設計指南以瞭解更多資訊。
範例
在以下範例中,我們建立一個具有兩個農產品 PCollection
的 Pipeline,一個包含圖示,另一個包含持續時間,兩者都具有農產品名稱的通用鍵值。然後,我們套用 CoGroupByKey
以使用其鍵值聯結這兩個 PCollection
。
CoGroupByKey
預期一個具名的鍵值 PCollection
字典,並產生由其鍵值聯結的元素。每個輸出元素的值都是字典,其中名稱對應於輸入字典,並包含該鍵值的所有值清單。
import apache_beam as beam
with beam.Pipeline() as pipeline:
icon_pairs = pipeline | 'Create icons' >> beam.Create([
('Apple', '🍎'),
('Apple', '🍏'),
('Eggplant', '🍆'),
('Tomato', '🍅'),
])
duration_pairs = pipeline | 'Create durations' >> beam.Create([
('Apple', 'perennial'),
('Carrot', 'biennial'),
('Tomato', 'perennial'),
('Tomato', 'annual'),
])
plants = (({
'icons': icon_pairs, 'durations': duration_pairs
})
| 'Merge' >> beam.CoGroupByKey()
| beam.Map(print))
輸出
相關轉換
- CombineGlobally 以合併元素。
- GroupByKey 採用一個輸入集合。
![]() |
上次更新於 2024/10/31
您是否找到所有您要尋找的資訊?
所有資訊都實用且清楚嗎?您有任何想要變更的地方嗎?請告訴我們!