問題タブ [spotify-scio]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-cloud-platform - Google Cloud Dataflow でファイルを順番に読み取る
Spotify Scioを使用して、Stackdriver から Google Cloud Storage にエクスポートされたログを読み取ります。これらは、すべての行が 1 つのエントリである JSON ファイルです。ワーカー ログを見ると、ファイルがチャンクに分割され、任意の順序で読み取られているように見えます。この場合、私はすでに自分の仕事を正確に 1 人のワーカーに制限しています。これらのチャンクを順番に読み取って処理する方法はありますか?
例として (textFile は基本的に TextIO.Read です):
ワーカー ログに基づいて、次のような出力が生成されます。
私が知りたいのは、1 行目から 12 行目を順番に読むように強制する方法があるかどうかです。ファイルを gzip 圧縮し、指定された CompressionType で読み取ることが回避策であることがわかりましたが、元のファイルを圧縮または変更しないでこれを行う方法があるかどうか疑問に思っています。
google-cloud-dataflow - Scio: Cloud pub sub から送信されたメッセージを Apache Beam を使用して結合するにはどうすればよいですか?
現在、Apache Beam の scala ラッパー ライブラリである scio を使用しています。やりたいことは、ID に基づいて CloudPubSub から送信されたさまざまな種類のメッセージを結合することです。
メッセージ A は 1 秒ごとに送信され、メッセージ B は 3 秒ごとに 1 回送信されます。メッセージBを受け取ったら、受け取ったメッセージAと同じIDのメッセージを結合したい。
メッセージ例)
現在のコード
どちらの行もkeyByの行まで実行します。ただし、参加後に印刷しても何も印刷されません。エラー等はありません...
トラブルにあっている。私は答えを待っています...
(コンソールログ)</p>
ウィンドウ処理は10秒ごとに行われているようですが、処理される時間はバラバラです。さらに、DirectRunner の代わりに DataflowRunner を使用して起動すると、成功することがわかりました。