我正在运行带有MySQL Metastore的Spark 2.1.0 Thrift服务器。
在我长期运行的应用程序中,我保存了具有createGlobalTempView
或createOrReplaceTempView
功能的数据框,但我无法直接看到它们
当我使用write().saveAsTable()
时,没关系,我可以直接看到桌子。
我的thrift服务器和应用程序是同一个Spark集群上的2个应用程序,我设置了
spark.sql.hive.thriftServer.singleSession=true
答案 0 :(得分:2)
对于标准临时视图是预期的行为。临时表仅在特定SparkSession
范围内可见。
spark.sql.hive.thriftServer.singleSession
表示与Thrift服务器的所有连接都应该使用单个会话,而不是所有应用程序都有一个全局会话。
要使用Thrift服务公开临时表,您必须使用与已注册表相同的上下文启动它。
对于全局临时视图(2.1+),您应该使用限定名称(包括数据库名称spark.sql.globalTempDatabase
)来访问视图。