Spark SQL - 简介

Spark引入了一个名为Spark SQL的结构化数据处理编程模块.它提供了一个名为DataFrame的编程抽象,可以作为分布式SQL查询引擎.

Spark SQL的特性

以下是Spark SQL的功能 :

  • 集成 : 将SQL查询与Spark程序无缝混合. Spark SQL允许您将结构化数据作为Spark中的分布式数据集(RDD)进行查询,并使用Python,Scala和Java中的集成API.这种紧密集成使得SQL查询与复杂的分析算法一起运行变得容易.

  • 统一数据访问 : 从各种来源加载和查询数据. Schema-RDD提供了一个有效处理结构化数据的单一界面,包括Apache Hive表,镶木地板文件和JSON文件.

  • Hive兼容性 : 在现有仓库上运行未修改的Hive查询. Spark SQL重用了Hive前端和MetaStore,使您可以完全兼容现有的Hive数据,查询和UDF.只需将其与Hive一起安装即可.

  • 标准连接 : 通过JDBC或ODBC连接. Spark SQL包括具有行业标准JDBC和ODBC连接的服务器模式.

  • 可伸缩性 : 对交互式查询和长查询使用相同的引擎. Spark SQL利用RDD模型来支持中间查询容错,使其可以扩展到大型作业.不要担心使用不同的引擎来获取历史数据.

Spark SQL架构

下图解释了Spark SQL的架构 :

Spark SQL Architecture

此体系结构包含三个层,即Language API,Schema RDD和Data Sources.

  • 语言API :  Spark兼容不同的语言和Spark SQL.它也受这些语言支持 -  API(python,scala,java,HiveQL).

  • Schema RDD :  Spark Core设计有称为RDD的特殊数据结构.通常,Spark SQL适用于模式,表和记录.因此,我们可以使用Schema RDD作为临时表.我们可以将此Schema RDD称为数据框架.

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

我们将在后续章节中讨论更多相关内容.