子查询通常在 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)
在 2.0 之前的 Spark 版本中,仅在 FROM 子句中支持子查询,类似于 0.12 之前的 Hive 版本。不支持 WHERE 子句中的子查询。
以上是SparkSQL 2.0 版本及更早版本之间的子查询支持有何不同?的详细内容。更多信息请关注PHP中文网其他相关文章!