子查詢通常在 SQL 中用於檢索巢狀資訊或執行比較。雖然 SparkSQL 支援某些子查詢,但其支援並不全面。本文旨在概述 SparkSQL 的子查詢功能,並討論早期版本中的限制。
從 Spark 2.0 開始,完全支援相關和不相關子查詢。這允許涉及嵌套資料的更複雜的 SQL 查詢。
範例:
select * from l where exists (select * from r where l.a = r.c) select * from l where a in (select c from r)
Spark
Spark
sqlContext.sql( "select sal from samplecsv where sal < (select MAX(sal) from samplecsv)" ).collect().foreach(println)
SPARK-23945:支援使用單列DataFrame作為輸入Column.isin().
SPARK-18455:相關子查詢處理的一般支援。 結論SparkSQL 對子查詢的支援多年來已經有了顯著的發展。雖然早期版本僅支援有限的子集,但 Spark 2.0 及更高版本為相關和不相關子查詢提供全面支援。計劃的功能旨在在未來版本中進一步改進這種支援。以上是SparkSQL 2.0 版本及更早版本之間的子查詢支援有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!