SparkSQL 子查詢支援
SparkSQL 在 2.0 及更高版本中完全支援相關和非相關子查詢。不過在2.0之前的版本中,Spark對子查詢的支援是有限的。
對於FROM子句中的子查詢,Spark支援的方式與Hive相同(版本
SELECT col FROM (SELECT * FROM t1 WHERE bar) t2
但是,2.0之前的Spark版本不支援WHERE子句中的子查詢。這是由於效能問題以及每個子查詢都可以使用 JOIN 來表達的事實。
在 Spark 2.0 及更高版本中,支援相關和不相關子查詢。範例包括:
SELECT * FROM l WHERE exists (SELECT * FROM r WHERE l.a = r.c) SELECT * FROM l WHERE l.a in (SELECT c FROM r)
但是,需要注意的是,在 2.0 之前的版本中使用 DataFrame DSL 來表達子查詢目前是不可能的。
以上是SparkSQL如何處理跨版本的子查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!