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 表、parquet 文件和 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

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

  • 语言 API - Spark 与不同的语言和 Spark SQL 兼容。它也受以下语言支持 - API(python、scala、java、HiveQL)。

  • Schema RDD - Spark Core 是用名为 RDD 的特殊数据结构设计的。通常,Spark SQL 处理模式、表和记录。因此,我们可以使用 Schema RDD 作为临时表。我们可以将此 Schema RDD 称为 DataFrame。

  • 数据源 - 通常,spark-core 的数据源是文本文件、Avro 文件等。但是,Spark SQL 的数据源不同。它们是 Parquet 文件、JSON 文档、HIVE 表和 Cassandra 数据库。

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

广告

© . All rights reserved.