首頁 > 資料庫 > mysql教程 > SparkSQL 2.0 版本及更早版本之間的子查詢支援有何不同?

SparkSQL 2.0 版本及更早版本之間的子查詢支援有何不同?

Barbara Streisand
發布: 2025-01-03 17:52:38
原創
293 人瀏覽過

How Does SparkSQL Subquery Support Differ Between Versions 2.0 and Earlier?

SparkSQL 中的子查詢支援

簡介

子查詢通常在 SQL 中用於檢索巢狀資訊或執行比較。雖然 SparkSQL 支援某些子查詢,但其支援並不全面。本文旨在概述 SparkSQL 的子查詢功能,並討論早期版本中的限制。

Spark 2.0

從 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

Spark

sqlContext.sql(
 "select sal from samplecsv where sal < (select MAX(sal) from samplecsv)"
).collect().foreach(println)
登入後複製
Spark

2.0

2.0 之前的Spark 版本中,僅在FROM子句中支援子查詢,類似於 0.12 之前的 Hive 版本。不支援 WHERE 子句中的子查詢。

例如,以下查詢在Spark
    中將失敗2.0:
  • 計劃的功能
除了當前的支援之外,Spark 還計劃增強其子查詢功能:

SPARK-23945:支援使用單列DataFrame作為輸入Column.isin().

SPARK-18455:相關子查詢處理的一般支援。 結論SparkSQL 對子查詢的支援多年來已經有了顯著的發展。雖然早期版本僅支援有限的子集,但 Spark 2.0 及更高版本為相關和不相關子查詢提供全面支援。計劃的功能旨在在未來版本中進一步改進這種支援。

以上是SparkSQL 2.0 版本及更早版本之間的子查詢支援有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板