Partitioned by 给我创建外部表时重复的错误列
Posted
技术标签:
【中文标题】Partitioned by 给我创建外部表时重复的错误列【英文标题】:Partitioned by gives me error column duplicated when creating external table 【发布时间】:2019-09-09 17:21:32 【问题描述】:我正在使用 'partitioned by' 创建一个外部表,但出现以下错误:
'Invalid operation: column "#id" duplicated'
我最初认为它可能与字符 # 有关,但后来我尝试了不同的列,我得到了同样的错误。 (如果有人询问 #,我将文件从 csv 上传到 S3,标题包括 #,并且在创建表时无法将列名更改为没有此 # 的名称,否则只会带来空值。)
CREATE EXTERNAL TABLE schema.table_name
(
#id BIGINT,
uf varchar(255)
)
partitioned by (#id BIGINT,
uf varchar(255))
row format delimited
fields terminated by ','
stored as parquet
location 's3://bucket/folder/'
【问题讨论】:
【参考方案1】:您的问题是您尝试使用已被列使用的名称来命名分区。
正如您在文档中看到的here,这是不允许的:
创建一个外部表并在 PARTITIONED BY 子句中指定分区键。分区键不能是表列的名称。 [...]
只需重命名您的分区,它应该可以工作。
【讨论】:
谢谢!确实有效,下次我应该更仔细地阅读文档;)以上是关于Partitioned by 给我创建外部表时重复的错误列的主要内容,如果未能解决你的问题,请参考以下文章
hive创建表的时候没有partitioned by能否在创表之后添加分区
带有 USING 和 PARTITIONED BY 子句的 spark hive 创建表的有效语法是啥?
hive建表时partitioned分区字段类型只能用string吗?可以用其他的字段类型吗?