Spark 2.x管理与开发-Spark SQL-Spark SQL基础 (七)Spark SQL中的视图-Global Temporary View
Posted on 2020-07-19 23:31 MissRong 阅读(865) 评论(0) 收藏 举报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两个视图
展示局部视图时会报错:

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

浙公网安备 33010602011771号