SQL面试题更新 2026-08-05

请说明在 Spark SQL 中,临时视图的创建方式以及如何将其注册到会话中,以便后续查询使用。

数据技术原理Spark SQL

考察说明

考查对 Spark SQL 临时视图概念、创建语法及生命周期的基础理解。

回答思路

  1. 【回答框架 1】临时视图是绑定到 SparkSession 的虚拟表,在会话结束或显式删除后失效,不持久化到元存储。创建方式常用 createOrReplaceTempView 方法,传入视图名,并基于 DataFrame 或 Dataset 调用。
  2. 【回答框架 2】注册一个临时视图后,即可在 SQL 查询中直接引用该视图名,例如 spark.sql("SELECT * FROM myView"),从而在 SQL 与 DataFrame 编程之间桥接。
  3. 【回答框架 3】临时视图的生命周期与 SparkSession 相关,不同会话之间不可见;若需跨会话共享,则需注册为全局临时视图(使用 createGlobalTempView),并通过 global_temp 前缀访问。
  4. 【回答框架 4】此外,还可以使用 SQL 语句直接创建临时视图,如 CREATE TEMP VIEW 或 CREATE OR REPLACE TEMP VIEW,并基于查询结果定义视图。
  5. 【关键点 1】临时视图通过 createOrReplaceTempView(name) 或相应 SQL 命令注册。
  6. 【关键点 2】临时视图仅对当前 SparkSession 可见。
  7. 【关键点 3】覆盖已存在的临时视图使用 createOrReplaceTempView 或 CREATE OR REPLACE。
  8. 【易错点 1】不可将临时视图与永久表混淆,临时视图不持久化。
  9. 【易错点 2】全局临时视图需加 global_temp 前缀访问。