create table if not exists MODEL_BACK.DCV_TB_LXY_ADXY_0(`ad_s rv_id` DOUBLE,`ad_acc_nbr` STRING,`acc_nbr2` STRING,`end_date` STRING,`fee_xy` STRING,`updatetime` STRING) partitioned by (updatetime string) stored as parquet impala的这个建表语句报Duplicate column name: updatetime这个错误,这是什么原因
时间: 2023-09-28 13:05:43 浏览: 79
C++编程中__if_exists与__if_not_exists语句的用法
Impala的建表语句中,分区字段是表数据的逻辑划分,不能和表的列名重复。在你的建表语句中,updatetime既是列名,又是分区字段,导致了该错误的发生。解决方法是将分区字段的名称修改,例如将分区字段改为partition_date,建表语句可以修改为:
```
create table if not exists MODEL_BACK.DCV_TB_LXY_ADXY_0(
`ad_s rv_id` DOUBLE,
`ad_acc_nbr` STRING,
`acc_nbr2` STRING,
`end_date` STRING,
`fee_xy` STRING,
`updatetime` STRING
) partitioned by (partition_date string) stored as parquet;
```
需要注意的是,修改分区字段名称后,查询该表时需要使用新的分区字段名进行查询。
阅读全文