Hive使用WITH子句后执行CREATE TABLE报错,如何解决?
Hive查询报错解决:cannot recognize input near 'create' 'table' ...
你的报错是因为Hive的CTE(WITH子句)语法使用错误,Hive要求WITH子句必须直接关联后续的SELECT语句,不能单独定义CTE后再写CREATE TABLE AS SELECT。
正确的写法是将WITH子句整合到CTAS(Create Table As Select)语句中:
WITH my_subquery AS ( SELECT a, b FROM some_db.some_table ) CREATE TABLE some_other_db.new_table AS SELECT * FROM my_subquery;
补充说明
WITH子句的作用是为紧接着的SELECT语句定义临时子查询,必须和使用它的查询语句连为一个整体,不能拆分。你原来的写法把WITH子句和CREATE TABLE语句拆成了两部分,Hive解析器无法识别这种语法,因此抛出错误。
内容的提问来源于stack exchange,提问作者Christopher Settles
相关产品推荐
相关产品推荐

