Spark Sql 简明教程

Spark SQL - Introduction

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

Features of Spark SQL

以下为 Spark SQL 的功能 −

  1. Integrated − 将 SQL 查询与 Spark 程序无缝混合。Spark SQL 允许您将结构化数据作为 Spark 中的分布式数据集(RDD)查询,并与 Python、Scala 和 Java 中的 API 集成。这种紧密集成使得运行 SQL查询以及复杂的分析算法变得非常容易。

  2. Unified Data Access − 从各种来源加载和查询数据。Schema-RDD 提供了一个用于有效处理结构化数据的单一界面,包括 Apache Hive 表、parquet 文件和 JSON 文件。

  3. Hive Compatibility − 在现有仓库上运行未经修改的 Hive 查询。Spark SQL 会重复使用 Hive 前端和 MetaStore,使您与现有 Hive 数据、查询和 UDF 完全兼容。只需将其与 Hive 一起安装。

  4. Standard Connectivity − 通过 JDBC 或 ODBC 连接。Spark SQL 包含一个搭载行业标准 JDBC 和 ODBC 连接性的服务器模式。

  5. Scalability − 同一引擎用于交互查询和长时间查询。Spark SQL 利用 RDD 模型支持查询故障中容,可将它扩展到大型作业。无需为历史数据使用不同的引擎。

Spark SQL Architecture

下图说明了 Spark SQL 的架构 −

spark sql architecture

此架构包含三层,分别为语言 API、模式 RDD 和数据源。

  1. Language API − Spark 与不同的语言和 Spark SQL 兼容。还受以下语言支持:API (python、scala、java、HiveQL)。

  2. Schema RDD − Spark 内核的特殊数据结构称为 RDD。一般来说,Spark SQL 处理模式、表格和记录。因此,我们可以将模式 RDD 用作临时表格。我们可以将此模式 RDD 称为数据帧。

  3. Data Sources − 通常来说,Spark 内核的数据源是文本文件、Avro 文件等。然而,Spark SQL 的数据源有所不同。这些数据源是 Parquet 文件、JSON 文档、HIVE 表和 Cassandra 数据库。

我们将在后续章节中深入讨论这些内容。