0

私たちは現在、Cloud DataflowのコンセプトApache Beam Pipelineの実証に取り組んでいます。いくつかのファイル(テキストもカスタムバイナリ形式もあります)をGoogle Cloud Bucketに入れ、これらのファイルをbyte []として読み込み、フロー内でそれらを逆シリアル化したいとします。ただし、テキスト以外のファイルを読み取ることができるBeam​​ソースは見つかりません。 唯一のアイデアは、FileBasedSourceクラスを拡張することですが、簡単な解決策があるはずです。なぜなら、この音はかなり簡単な作業のようなものだからです。Apache Beamでファイルをバイト[]として読み取るには?

ご協力いただきありがとうございます。

答えて

1

これは私が情報を広めるために、とにかく一般的にお答えします、現在pull request #3717

で検討中で、実際には一般的に便利な機能です。

FileBasedSourceの主な目的は、ファイルコレクションの柔軟な分割を、1行に1レコードの1つの巨大なデータセットとして表示することです。

ファイルごとに1つのレコードしかない場合は、ParDo(DoFn)のファイルをファイル名からbyte[]に読み取ることができます。要素間の分割は任意のPCollectionでサポートされているので、既に分割の最大の利点が得られます。

Dataflowが最適化する方法のために、あなたの `ParDo。 'の前にReshuffle変換が必要な場合があります。これにより、すべてのファイルの読み込みの並列性が、上流の変換が名前をPCollectionに挿入するどのような並列性からも分離されます。

関連する問題