CombineGlobally
![]() |
コレクション内のすべての要素を結合します。
Beamプログラミングガイドで詳細情報をご覧ください。
例
以下の例では、農産物の`PCollection`を持つパイプラインを作成します。次に、`CombineGlobally`をさまざまな方法で適用して、`PCollection`内のすべての要素を結合します。
`CombineGlobally`は、要素の`iterable`を入力として受け取り、それらを結合して単一の要素を返す関数を受け入れます。
例1:関数を使った結合
集合の`iterable`を入力として受け取り、それらの集合の共通要素(共通項目)を計算する関数`get_common_items`を定義します。
例2:ラムダ関数を使った結合
**例1**を簡素化するために、ラムダ関数を使用することもできます。
例3:複数の引数を使った結合
`CombineGlobally`には、複数の引数を持つ関数を渡すことができます。それらは、関数の追加の位置引数またはキーワード引数として渡されます。
この例では、ラムダ関数は`sets`と`exclude`を引数として受け取ります。
例4:`CombineFn`を使った結合
要素を結合するより一般的な方法、そして最も柔軟な方法は、`CombineFn`を継承するクラスを使用することです。
CombineFn.create_accumulator()
:空のアキュムレータを作成します。たとえば、合計の空のアキュムレータは`0`、積(乗算)の空のアキュムレータは`1`です。CombineFn.add_input()
:要素ごとに1回呼び出されます。アキュムレータと入力要素を受け取り、それらを結合して更新されたアキュムレータを返します。CombineFn.merge_accumulators()
:複数のアキュムレータを並列処理できるため、この関数はそれらを単一のアキュムレータにマージするのに役立ちます。CombineFn.extract_output()
:結果を抽出する前に追加の計算を実行できます。
関連トランスフォーム
以下のコンバイナー変換を使用できます。
![]() |
最終更新日:2024/10/31
探しているものが見つかりましたか?
すべて役に立ち、分かりやすかったですか?変更したいことはありますか?お知らせください!