Hive创建临时表报错:mismatched input 'temporary' 求助
Hive临时表创建报错解决办法
你遇到的mismatched input 'temporary'错误,核心原因是Hive会话级临时表不允许指定自定义schema(也就是你写的my_schema)。
正确的创建方式分两种:
1. 会话级临时表(仅当前会话可用,会话结束自动删除)
去掉自定义schema,直接创建:
CREATE TEMPORARY TABLE table_2 AS SELECT id, start_date FROM my_schema.table_1
这种临时表是会话私有,默认存储在Hive的临时空间里,不需要关联你的自定义schema。
2. 全局临时表(跨会话可见,会话结束后数据清空,表结构保留)
如果需要跨会话使用临时表,用GLOBAL TEMPORARY语法,同样不需要指定自定义schema:
CREATE GLOBAL TEMPORARY TABLE table_2 AS SELECT id, start_date FROM my_schema.table_1
全局临时表默认归属global_temp schema,其他会话可以通过global_temp.table_2访问,但只能看到自己会话写入的数据。
补充说明
你参考的文档语法本身没问题,但文档示例应该不会指定自定义schema——Hive的临时表机制设计上就和用户自定义schema解耦,强制指定schema会触发语法解析错误。
内容的提问来源于stack exchange,提问作者Pete
相关产品推荐
相关产品推荐

