問題タブ [apache-beam-io]
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.
redis - 組み込みの Apache ビーム Redis I/O 変換で Redis GET コマンドを実行する方法はありますか?
私の Google Cloud Dataflow の使用例は、発生する変換がキャッシュされたデータに依存するため、パイプライン中に Redis をキャッシュとして使用することです。これは、Redis GET コマンドを実行することを意味します。公式の組み込み Redis I/O 変換のドキュメントには、いくつかの方法をサポートすることが記載されています。
read - 「キーと値のペアを KV として含む制限付き PCollection を返すソースを提供します」
readAll - 「入力 PCollection 要素をキー パターン (文字列) として使用して、Redis サーバーを要求するために使用できます」
readAll は GET コマンドに対応していないように見えますが、入力 PCollection は Redis ソース全体をスキャンした結果をフィルター処理するために使用されるため、これは私が探しているものではありません。
私のユースケースを可能にする組み込みの I/O 変換を調べたときに何か欠けているものがあるかどうか、またはそれをサポートするオープンソースのサードパーティ I/O 変換のような代替手段があるかどうか疑問に思っていました。それとも、Apache Beam とは根本的に互換性がないものなのでしょうか?
apache-beam - どのようにビームから HDFS に書き込みますか?
SparkRunner を使用して実行し、ローカル ファイルから読み取り、HDFS に書き込む Beam パイプラインを作成しようとしています。
最小限の例を次に示します。
オプションクラス -
ビームメインクラス -
次のように実行します。
予想されること: ローカルの testInput ファイルの行を読み取り、hdfs ホーム ディレクトリにある testOutput という名前の新しいファイルに書き込みます。
実際に何が起こるか: 私が知る限り、何もありません。Spark はジョブが正常に完了したことを示し、ログに Beam の手順が表示されますが、hdfs またはローカル ディレクトリに書き込まれた testOutput という名前のファイルまたはディレクトリはありません。おそらく、spark executor ノードでローカルに書き込まれているのかもしれませんが、チェックするためのアクセス権がありません。
TextIO インターフェイスを間違って使用しているか、PipelineOptions インターフェイスに追加するだけでなく、ファイルシステムを構成するためにさらに多くのことを行う必要があると推測しています。しかし、その方法を説明するドキュメントが見つかりません。