1. Spark SQL 简介 (Introduction)
Spark SQL 是 Spark 用于结构化数据处理的模块。它提供了一个称为 DataFrame 的编程抽象,并且可以充当分布式 SQL 查询引擎。
Spark SQL 的主要特点包括:
- 集成性:将 SQL 查询与 Spark 程序无缝混合。
- 统一数据访问:以相同的方式连接到任何数据源(Hive, Avro, Parquet, ORC, JSON, JDBC)。
- 兼容性:在现有的数据上运行未修改的 Hive 查询。
- 标准化连接:通过 JDBC 或 ODBC 连接。
2. SparkSession - SQL 的入口 (SparkSession)
在旧版本的 Spark 中,SQL 的入口点是 SQLContext。但在 Spark 2.0 及更高版本中,SparkSession 成为了单一的入口点,它封装了 SparkContext 和 SQLContext。
要使用 Spark SQL,通常需要先创建一个 SparkSession 对象。
Python
from pyspark.sql import SparkSession
spark = SparkSession.builder \\
.appName("Spark SQL App") \\
.config("spark.some.config.option", "some-value") \\
.getOrCreate()
3. 注册临时视图 (Creating Temporary Views)
要在 DataFrame 上运行 SQL 查询,首先必须将其注册为临时视图 (Temporary View)。一旦注册,就可以像操作传统数据库表一样操作它。
语法:
Python
DataFrame.createOrReplaceTempView("view_name")
注意:临时视图是会话级别的 (Session-scoped),当 SparkSession 终止时,视图也会消失。