Spark 2.x管理与开发-Spark SQL-Spark SQL基础 (七)Spark SQL中的视图

在Spark SQL中,如果你想拥有一个临时的view,并想在不同的Session中共享,而且在application的运行周期内可用,那么就需要创建一个全局的临时view。并记得使用的时候加上global_temp作为前缀来引用它,因为全局的临时view是绑定到系统保留的数据库global_temp

① 创建一个普通的view和一个全局的view

df.createOrReplaceTempView("emp1")

df.createGlobalTempView("emp2")

② 在当前会话中执行查询,均可查询出结果。

spark.sql("select * from emp1").show

spark.sql("select * from global_temp.emp2").show

③ 开启一个新的会话,执行同样的查询

spark.newSession.sql("select * from emp1").show   (运行出错)

spark.newSession.sql("select * from global_temp.emp2").show

*************自己操作**************

回顾:

视图是一个虚表,不存储数据

两种类型

普通视图(本地视图):只在当前Session有效

全局试图:不同的Session中都有效,

全局视图在特殊的命名空间中:global_temp,类似于一个库,全局视图都创建在这种库里面

 

1)现在创建局部视图和全局视图各一个:

 

2)展示局部视图-emp1

3)展示全局视图-emp2

发现报错:

 

现在:global_temp.emp2就可以看到全局视图emp2了

 

4)接下来新创建一个会话-spark.newSession,再show两个视图

展示局部视图时会报错:

 

展示全局视图时会正常打印:

 

 

 

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3