微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spark SQL的前世今生

文章目录

1. Spark sql简介

1.1 Spark sql 起源

要说这个的起源,我们要先供hive讲起。hive并不是另一个sql,它只是sql-on-Hadoop,执行的是在Hadoop上实现用 类sql的语法 对 sql快速查询

在这里插入图片描述


而在Spark 开始兴起之后,就开始转向在Spark上使用Hive,于是开发出了Shark==Hive on Spark.

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


于是,最后官方停止了Shark项目,转而开发Spark sql
因此,产生了两个直线分支:

在这里插入图片描述


也就是说,Spark sql一个全新的,但是兼容Hive的。

1.2 Spark sql缘起

在这里插入图片描述


在这里插入图片描述

2. Spark sql 架构

在这里插入图片描述


下图说明了Spark sql的体系结构

Spark SQL的体系结构


此架构包含三个层,即Language API,Schema RDD和数据源。

2.1 语言API

Spark与不同的语言和Spark sql兼容。 它也是由这些语言支持的API(python,scala,java,HiveQL)。

2.2 模式RDD

Spark Core是使用称为RDD的特殊数据结构设计的。 通常,Spark sql适用于模式,表和记录。 因此,我们可以使用Schema RDD作为临时表。 我们可以将此Schema RDD称为数据帧。

2.3 数据源

通常spark-core的数据源是文本文件,Avro文件等。但是,Spark sql的数据源不同。 这些是Parquet文件,JSON文档,HIVE表和Cassandra数据库

我们将在随后的章节中更多地讨论这些。

3. Spark sql 支持的数据格式和编程语言

在这里插入图片描述

4. Spark sql 功能特性

以下是Spark sql功能

4.1 集成

无缝地将SQL查询与Spark程序混合。 Spark sql允许您将结构化数据作为Spark中的分布式数据集(RDD)进行查询,在Python,Scala和Java中集成了API。这种紧密的集成使得可以轻松地运行SQL查询以及复杂的分析算法。

4.2 统一数据访问

加载和查询来自各种来源的数据。 Schema-RDDs提供了一个有效处理结构化数据的单一接口,包括Apache Hive表,镶木地板文件和JSON文件

4.3 Hive兼容性

在现有仓库上运行未修改的Hive查询。 Spark sql重用了Hive前端和metastore,为您提供与现有Hive数据,查询和UDF的完全兼容性。只需将其与Hive一起安装即可。

4.4 标准连接

通过JDBC或ODBC连接。 Spark sql包括具有行业标准JDBC和ODBC连接的服务器模式。

4.5 可扩展性

对于交互式查询和长查询使用相同的引擎。 Spark sql利用RDD模型来支持查询容错,使其能够扩展到大型作业。不要担心为历史数据使用不同的引擎。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐