Note:将DataFrame注册为一个临时视图view,然后将可以针对view直接执行各种sql.
视图视图有两种:session级别视图,global级别视图。
全局视图在application级别有效
注意使用全局表是需要全路径访问:global_temp.表名
val df: DataFrame = spark.read.schema(schema).csv("data/stu.txt")
df.createGlobalTempView("stu")
df.createTempView("stu_tmp")
spark.sql(
"""
|select * from global_temp.stu
""".stripMargin).show()
spark.sql("select * from stu_tmp limit 2")
// 新开一个sparksession
val sparkSession: SparkSession = spark.newSession()
sparkSession.sql(
"""
|select * from global_temp.stu limit 1
""".stripMargin).show()
//报错 在新开的sparksession中不能使用 上一个session创建的临时表
sparkSession.sql("select * from stu_tmp").show()