SparkSession的临时表分为两种
- 全局临时表:作用于某个Spark应用程序的所有SparkSession会话
- 局部临时表:作用于某个特定的SparkSession会话
如果同一个应用中不同的session需要重用一个临时表,那么不妨将该临时表注册为全局临时表,可以避免多余的IO,提高系统的执行效率,但是如果只是在某个session中使用,只需要注册局部临时表,可以避免不必要的内存占用
package sparksql
import org.apache.spark.sql.SparkSession
object SparkSqltest1 {
def main(args: Array[String]): Unit = {
//创建sparksession
val sparkSession=SparkSession.builder().appName("test1").master("local[*]")getOrCreate()
import sparkSession.implicits._
//读取文件形成dataframe
val df=sparkSession.read.json("hdfs://192.168.1.181:9000/json/data.json")
val temp=df.createTempView("temp_person") //局部变量表
sparkSession.sql("select * from temp_person").show()
val glob=df.createGlobalTempView("glob_person") //全局变量表
sparkSession.sql("select * from glob_person").