首页 > 解决方案 > Spark Hive:临时表在会话中消失

问题描述

我使用创建了几个临时表

hive.executeUpdate("CREATE TEMPORARY TABLE AS SELECT ...")

在 Spark 的 Hive 中。我检查所有表格

hive.showTables().show()

在我稍后执行的每个查询之间的会话中(都喜欢INSERT INTO ... SELECT ...)并且临时表被不可预测地删除。

这在 HiveQL 中没有发生。

有人有类似的问题吗?

标签: apache-sparkhivehiveqltemporary

解决方案


通过查看您的 api,我认为您正在使用连接器

你必须在你的表前面加上 databaseschema.table。

或像这样设置数据库。

hive.setDatabase("default")

然后你的 CTAS

hive.executeUpdate("CREATE TEMPORARY TABLE AS SELECT ...")

例如:

val sql =  s"create temporary table $tmpTableName like $dbName.$tabName "

接着

INSERT INTO ... SELECT ...) 

你想做什么。

问:这在 HiveQL 中没有发生。有人有类似的问题吗?

在 hiveql 中,您将使用相同的数据库模式,这就是它按预期工作的原因。


推荐阅读