sql - 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/'
解决方案
您的问题是您正在尝试使用已被列使用的名称来命名分区。
正如您在文档中看到的那样,这是不允许的:
创建一个外部表并在 PARTITIONED BY 子句中指定分区键。分区键不能是表列的名称。[...]
只需重命名您的分区,它应该可以工作。
推荐阅读
- wordpress - Worpress 评论错误“您发布评论的速度太快了。放慢速度”
- android - 在 Android 应用程序中初始化 OneSignal 时出现问题 - 在 runtime_flags 中设置的未知位:0x8000
- docker - Portainer:使用 docker prune 的主机作业不起作用
- android - 带有 TCP 信息源的 Android 架构存储库
- android - 如果用作表达式,'if' 必须同时具有 main 和 'else' 分支
- java - 使用葡萄从 groovy 脚本运行主类
- java - Maven 不使用全局 settings.xml 中的存储库
- java - Spring 不会完整返回 JSON
- javascript - 传递并获取显示为 html 文本的数组
- html - Toogle 汉堡菜单