创建表后,我可以使用PARTITIONED BY吗?

时间:2018-05-09 21:56:59

标签: hive hiveql

create table t1 as select * from t2 where 1=2;

我使用上面的代码从表t2创建表t1。在该表中,t2被划分为3个vaules,即月,日,年。一旦创建了表t1,就不会对上面提到的值进行分区。

我尝试过以下代码,但它给了我错误。救命啊!

create table t1 as 
select * from t2 PARTITIONED BY( YEAR  STRING, MONTH STRING, DAY  STRING);
  

[42000]:编译语句时出错:FAILED:ParseException 1:0行无法识别' PARTITIONED'附近的输入。 ' BY' '('在表格来源

1 个答案:

答案 0 :(得分:1)

只需要更正语法。 partitioned by ...追踪create table

create table t1 PARTITIONED BY(YEAR STRING,MONTH STRING,DAY STRING) as 
select /*add other columns here*/,year,month,day 
from t2;

建议明确调出列而不是*,并在select末尾指定分区列。