重命名 Athena 中的分区列名称

Posted

技术标签:

【中文标题】重命名 Athena 中的分区列名称【英文标题】:Rename the partition column name in Athena 【发布时间】:2020-01-13 09:34:11 【问题描述】:

我有一个由 Glue 通过抓取 S3 中的镶木地板文件自动创建的 Athena 表。它将文件夹名称作为分区并将此分区列命名为“partition_0”。 现在,我想将此分区重命名为“snapshot_date”,并且可以使用“edit_schema”选项在 Glue UI 中执行此操作。但另一方面,当我尝试使用 Java 代码做同样的事情时,我无法做到。 这是我通过 java 代码运行以完成此操作的查询。

Alter table test_java_crawler.pao_java_input_data change column `partition_0` `snapshot_date` string

我收到以下错误:

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Invalid column reference partition_0

有没有办法使用 java 以编程方式修改此分区名称?如果是,您能否指出用于此目的的 API?

【问题讨论】:

【参考方案1】:

我已经使用 Glue 客户端使用此功能实现了此功能: https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/glue/model/UpdateTableResult.html,提供更新分区键的选项。

【讨论】:

以上是关于重命名 Athena 中的分区列名称的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Athena 中执行模式(数据库)重命名?

在 Athena 中重命名列

如何重命名 maria DB 中的列名

重命名postgresql数据库中的列名

如何以编程方式重命名 AWS Glue 目录中的列名

使用 spark sql 重命名 Parquet 文件中列名中的空格