Spark SQL は、バッチ処理データとストリーミングデータの結合、バッチ処理データの結合、ストリーミングデータの結合をサポートしています。 JOIN 文は、従来のバッチ処理用の JOIN 文と同じセマンティクスを備えています。
構文
tableReference [, tableReference ]* | tableexpression
[ joinType ] JOIN tableexpression [ joinCondition ];
制限
ストリーミングデータを結合する場合、一部の結合タイプはサポートされないことに注意してください。 詳細は、Spark 公式ドキュメントをご参照ください。 次の表に、一部の結合タイプを示します。
左テーブル | 右テーブル | 結合タイプ | サポートの有無 |
---|---|---|---|
ストリーム | 静的 | 内部 | サポート。非ステートフル。 |
左外部 | サポート。非ステートフル。 | ||
右外部 | 未サポート。 | ||
完全外部 | 未サポート。 | ||
静的 | ストリーム | 内部 | サポート。非ステートフル。 |
左外部 | 未サポート。 | ||
右外部 | サポート。非ステートフル。 | ||
完全外部 | 未サポート。 | ||
ストリーム | ストリーム | 内部 | サポート。 オプションで、状態のクリーンアップのため、両側にウォーターマーク、および時間の制約を指定できます。 |
左外部 | 条件付きサポート。 正しい結果を得るため、右側にウォーターマーク、および時間の制約を指定する必要があります。 オプションで、すべての状態のクリーンアップのため、左側にウォーターマークを指定できます。 | ||
右外部 | 条件付きサポート。 正しい結果を得るため、左側にウォーターマーク、および時間の制約を指定する必要があります。 オプションで、すべての状態のクリーンアップのため、右側にウォーターマークを指定できます。 | ||
完全外部 | 未サポート。 |