問題タブ [dstream]
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.
python-3.x - チェックポイントを使用して DStream と RDD を結合する
DStream と RDD の間で結合を実行するために戦ってきました。シーンを設定するには:
- スパーク - 2.3.1
- パイソン-3.6.3
RDD
CSV ファイルから RDD を読み込んで、レコードを分割し、ペアの RDD を作成しています。
これは からの出力ですsku_prices.collect()
:
Dストリーム
Kafka から DStream を読んでいます。
実行pprint()
するorders
と、次のような出力が得られます。
加入
今、私はitems
DStream をsku_prices
RDD に参加させたいと思っています。その結合を直接行うことはできないことはわかっていますが、私の読書ではtransform()
、DStream のメソッドを使用してジョブを実行できることが示唆されています。これは私が持っているものです:
次のような DStream を取得することを期待しています。
Sparkのドキュメントでは、これが機能するはずであり、実際に機能することが示唆されています。その結果はまさに私が得たものです! :)
チェックポイント
ただし、ステートフルな操作も行いたいので、チェックポイントを導入する必要があります。
チェックポイントを追加するだけで、次のエラーが発生しますtransform()
。
RDD をブロードキャストしようとしているか、アクションまたは変換から RDD を参照しようとしているようです。RDD 変換とアクションは、他の変換内ではなく、ドライバーによってのみ呼び出すことができます。たとえば、rdd1.map(lambda x: rdd2.values.count() * x) は無効です。これは、値の変換とカウント アクションを rdd1.map 変換内で実行できないためです。
このスレッドの回答は、チェックポイントと外部 RDD が混在しないことを示唆しています。これを回避する方法はありますか?StreamingContext でチェックポイントが有効になっている場合、DStream と RDD を結合することは可能ですか?
ありがとう、アンドリュー。
apache-spark - Spark ストリーミング DStream でアクションを非同期的に実行
データ取り込み用のプログラムを書いています。Kafka から DStream への読み取りは、Dstrem を 3 つのストリームに分割し、それぞれでアクションを実行します。
RDDではなくDStream全体で非同期送信をトリガーできる場合。