首页 > 数据库 > mysql教程 > SparkSQL 2.0 版本及更早版本之间的子查询支持有何不同?

SparkSQL 2.0 版本及更早版本之间的子查询支持有何不同?

Barbara Streisand
发布: 2025-01-03 17:52:38
原创
317 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板