私はGoogle Dataflowを初めて使用しており、さまざまな言語のカタログに参加したいカタログデータを扱っています。今のところ、私のプロセスは両方の言語を自分自身で解析し、各言語のPCollectionを作成します。このPCollectionには、メタデータ、すべての記事、すべてのカテゴリを含む要素が1つ含まれています。モデルは複数の言語を保持する準備が整っています。私が今行う必要があるのは、それらの2つの要素(PCollections)をマージすることだけです。Google DataflowでPCコレクションをマージする
しかし、Google Dataflowのドキュメントでは、これらのコレクションを「手作業で」マージする方法の例は提供されておらず、適用時の入力には常に特定のInput-Typeが必要です。 私はPCollectionListを試しましたが、私がPCollectionsとそのエンティティを含むすべてのもので作業できる解決策を見つけることができません。それから私はCustom CombineFnを書いたが、それを適用する方法はわからないので、両方のコレクションが結合される。
私は2つのPCollection catalogCollection_deとcatalogCollection_frを持っています。これらをカスタム処理して1つのPCollectionを取得するにはどうすればできますか?
は、すべてのヘルプは非常に
EDITを高く評価している:「参加/マージ」は、この文脈で何を意味するのか疑問に。 PCollectionsオブジェクトは、メタデータ、カテゴリ、および記事を含むCatalogCollectionと呼ばれるPojoを保持します。それらのPojosのそれぞれは異なるテキストを持ち、各テキストはMap<LanguageKey, Description>
で表されます。言語ごとに、このCatalogCollectionを保持するPCollectionがあります。私はそれらを結合/結合したいとき、私は1つのPCollectionですべての言語を集めたいと思っています。例えば、それぞれのArticleで、対応するArticleを他の言語で見つけ、すべての記述を最初にコレクションでは、最終的にすべての言語を収集する必要があります。
ここで実際にマージするものについて詳しく説明できますか?一般的に、単一要素のPCollectionを持つことはパラレル化できません。記事のPCollection、カテゴリのPCollectionなどを持つ方が良いでしょう。それぞれの記事は、それが含まれていた言語でキーイングされている可能性があります。 –
+1はBenと言っています。 CoGroupByKey変換を使用してコレクションをキーで結合します。 (おそらく、結合はあなたがマージした意味ですか?) – jkff
質問が更新されました – user2122552