首页 > 解决方案 > 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/'

标签: sqlamazon-redshiftpartitioningparquetexternal-tables

解决方案


您的问题是您正在尝试使用已被列使用的名称来命名分区。

正如您在文档中看到那样,这是不允许的:

创建一个外部表并在 PARTITIONED BY 子句中指定分区键。分区键不能是表列的名称。[...]

只需重命名您的分区,它应该可以工作。


推荐阅读