2017-08-29 2 views
0

私は、ParDo変換を実装する際に、データから個々の要素を(基本的に "\ n"で区切って)拾い上げることを知っています。しかし、ファイル内で2行を占める要素があるとどうなりますか?それに応じて要素を選ぶために自分の条件を適用することはできますか?それとも、常に1行に要素を持つ必要がありますか?processElement()内の要素を選択する - Apache Beam

答えて

1

テキストファイルの読み取りは、ParDoではなく、TextIOで制御されています。確かに今のところTextIOはファイルを1行に1つの要素に分割しますが、変更する作業が進行中です。あなたはhttps://issues.apache.org/jira/browse/BEAM-2802の作業に従うことができます。

あなたのファイル形式について詳しく説明した場合、その作業が有効であることを確認することが役に立ちます。

+0

こんにちは@jkff ...私はこれを完全に忘れました...はい、自然に複数の行を占めるクエリを持つ.sqlファイルがあります。データフロープログラム内でそれらを読み取ろうとしたとき、結果として得られたPCollectionのクエリは、あなたが回答した投稿の1つ(https://stackoverflow.com/questions/45920895/read-a-file-)に記載されているように、 from-gcs-in-apache-beam基本的には、データフローを使用して、そのファイル内のすべてのクエリを順番に実行しようとしていました。 – rish0097

+0

クエリを順番に実行している場合、つまり並列ではない場合、なぜデータフローが必要ですか? :) – jkff

+0

データフローは逐次実行には必須ではありませんが、多くのステップが含まれ、順序通りにクエリを実行するバッチジョブは、そのジョブのステップの1つです。そのようにも含める必要がありました。 – rish0097