スパークストリーミングで複数のアクションを非同期/並列実行する方法はありますか?ここで が私のコードです:スパークストリーミングで複数のアクションを並列/非同期で実行
positions.foreachRDD(rdd -> {
JavaRDD<A> pbv = rdd.map(p -> A.create(p));
javaFunctions(pbv).writerBuilder("poc", "table_a", mapToRow(A.class)).saveToCassandra();
JavaRDD<D> pbd = rdd.map(p -> D.create(p));
javaFunctions(pbd).writerBuilder("poc", "table_d", mapToRow(D.class)).saveToCassandra();
JavaRDD<L> pblv = rdd.map(p -> L.create(p));
javaFunctions(pblv).writerBuilder("poc", "table_l", mapToRow(L.class)).saveToCassandra();
JavaRDD<V> pbld = rdd.map(p -> V.create(p));
javaFunctions(pbld).writerBuilder("poc", "table_v", mapToRow(V.class)).saveToCassandra();
});
私は並列にsaveToCassandraアクションをやりたい、これは「テクニクスの火付け役」または唯一の自作スレッド/実行者扱い経由で可能ですか?
ありがとうございました!
よろしく、 マルクス
これらの挿入を実行する最も速い方法は 'rdd.foreachPartition'を実行し、javaドライバを使用して' PreparedStatements'を作成し、 'session.executeAsync'で提出することです。 – maasg
Thxヒント。あなたのアプローチをテストしようとします。 @RussSからのdstreamアプローチが機能しなかった場合 – mananana