Spark SQL は、バッチ処理データとストリーミングデータの結合、バッチ処理データの結合、ストリーミングデータの結合をサポートしています。 JOIN 文は、従来のバッチ処理用の JOIN 文と同じセマンティクスを備えています。

構文

tableReference [, tableReference ]* | tableexpression
[ joinType ] JOIN tableexpression [ joinCondition ];

制限

ストリーミングデータを結合する場合、一部の結合タイプはサポートされないことに注意してください。 詳細は、Spark 公式ドキュメントをご参照ください。 次の表に、一部の結合タイプを示します。
左テーブル 右テーブル 結合タイプ サポートの有無
ストリーム 静的 内部 サポート。非ステートフル。
左外部 サポート。非ステートフル。
右外部 未サポート。
完全外部 未サポート。
静的 ストリーム 内部 サポート。非ステートフル。
左外部 未サポート。
右外部 サポート。非ステートフル。
完全外部 未サポート。
ストリーム ストリーム 内部 サポート。 オプションで、状態のクリーンアップのため、両側にウォーターマーク、および時間の制約を指定できます。
左外部 条件付きサポート。 正しい結果を得るため、右側にウォーターマーク、および時間の制約を指定する必要があります。 オプションで、すべての状態のクリーンアップのため、左側にウォーターマークを指定できます。
右外部 条件付きサポート。 正しい結果を得るため、左側にウォーターマーク、および時間の制約を指定する必要があります。 オプションで、すべての状態のクリーンアップのため、右側にウォーターマークを指定できます。
完全外部 未サポート。