1
データフロー内でPCollection.apply(Write.to(MySink))
(非常に簡単にXmlSink.java)を呼び出して、書き込むFileBasedSink
のシンクをカスタマイズしています。しかし、デフォルトでは、単にWrite.to
と呼ぶと、常に3つの出力断片になるでしょうか?カスタマイズされたシンククラス定義の中で出力シャード(TextTO.Write.withNumShards
のような)の数を定義できる方法はありますか?または別のものを定義しなければならないPTransformer
TextIO.Write
のように?データフローのWrite.to(シンク)に出力シャードの数を設定します。
ありがとうございましたjkff、ああ、自分自身に明確にしたい、すべてのカスタマイズされたシンクは、出力シャードの数を制御することはできませんか?あなたの意見では、カスタマイズされたシンクでフレキシブルな出力シャードを可能にするために現在のポイントに行くための最善のルートは何ですか? –
私はこれを達成するための唯一の方法はカスタムシンクAPIなしであると思う:あなたのデータをParDo {データをモジュロnumShards}でパイプする| GBK | ParDo {このファイルのデータを一時ファイルに書き込みます。 finishBundleでは、最終的な場所に原子的に名前を変更します}。 – jkff
しかし、これは動的な仕事の再調整のために多くのサービスでは機能しないことに注意してください –