create table t1 as select * from t2 where 1=2;
我使用上面的代码从表t2创建一个表t1。在这个表中,t2被划分为3个变量,即月、日、年。一旦创建了表t1,它就不会按照上面提到的值进行分区。
我试过下面的代码,但它给我错误。救命啊!
create table t1 as
select * from t2 PARTITIONED BY( YEAR STRING, MONTH STRING, DAY STRING);
[42000]:编译语句时出错:失败:parseexception行1:0无法识别表源中被“”分区的“”附近的输入(“”)
2条答案
按热度按时间z18hc3ub1#
上面的答案是正确的,在表创建时/期间创建分区的解决方案。
如果已经创建了没有分区的表,那么其中一种方法就是使用insert overwrite。
b09cbbtk2#
只需要纠正语法。
partitioned by ...
追求create table
.建议显式调用列,而不是
*
并在末尾指定分区列select
.