一、视图与sql执行
SparkSession
能够以编程方式运行SQL查询并返回结果Dataset<Row>
Dataset<Row> df = spark.read().json("hdfs://master:9000/test.json");
df.createOrReplaceTempView("man");Dataset<Row> sqlDF = spark.sql("SELECT * FROM man");
sqlDF.show();
二、会话临时视图
Spark SQL中的临时视图是会话作用域的,如果创建它的SparkSession
会话终止,它将消失。
Dataset.createOrReplaceTempView()创建会话临时视图
df.createOrReplaceTempView("man");
Dataset<Row> sqlDF = spark.sql("SELECT * FROM man");
三、全局临时视图
如果要在所有会话之间共享一个临时视图并保持活动状态,直到Spark应用程序终止,则可以创建一个全局临时视图。
全局临时视图与系统保留的数据库相关联global_temp,必须使用限定名称来引用它
例如:SELECT * FROM global_temp.man。
Dataset.createGlobalTempView()创建全局临时视图
df.createGlobalTempView("man");
Dataset<Row> sqlDF = spark.sql("SELECT * FROM global_temp.man");