2017-09-25 8 views
1

私は設定のストリームを持っています(頻繁には変更されませんが、更新があればメッセージになります)。Spark 2.xの構造化ストリーミングで2つのストリームを結合する際の回避策

sparkはストリーミングデータセットまたはデータフレームへの参加をサポートしていないことを理解しています。これを回避するには良い方法がありますか?

ストリーミングデータセットの1つを静的データセットにスナップショットすることは可能でしょうか(それは更新が少ないのでおそらく設定1です)、もう一方のストリーミングデータセットに参加しますか?

提案につながります!

答えて

0

私は最後にやっています。

更新が少ないストリームをメモリシンクに入れます。次に、そのテーブルからselectを実行します。この時点では、静的インスタンスであり、他のストリームと結合することができます。トリガは必要ありません。もちろん、自分でテーブルを正しく更新する必要があります。

これはあまり堅牢ではありませんが、公式サポートの前に私が思いつくことができます。

+1

これをさらによく理解するために共有できるコードスニペットがありますか?ありがとう! – vkr

3

「回避策」現在のmasterブランチを使用することです;)

それはまだリリースされていないが、現在のマスターブランチが既に内部結合ストリームストリームを持っており、外側が進行中で参加しています。参照のためにthis Jiraチケットを参照してください。サブタスクでは、使用可能な結合が表示されます。

その他の簡単な回避策はありません。ストリーミング結合では、ストリームの状態を保存してから、状態の更新を修正する必要があります。プルリクエストでコードを見ることができます。ストリームストリームの結合を実装するのはかなり複雑です。

+1

これは3.0ではありません2.3: – zero323

+0

うん、ターゲットバージョンは2.3ですが、フィックスバージョンは3.0です。既にマスターになっていますが、それは2.3には含まれないと思いますか? –

+0

それは重大な変化のように聞こえる。それは意図的な選択かもしれない。しかし、私は内部者ではないので、私は確かに言うことができません。 – zero323

関連する問題