文章目录
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的体系结构
此架构包含三个层,即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 功能特性
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] 举报,一经查实,本站将立刻删除。