当我在 Amazon Athena 中运行 CTAS 查询时,如何解决“HIVE_PATH_ALREADY_EXISTS”异常?

1 分钟阅读
0

当我在 Amazon Athena 中运行 CREATE TABLE AS SELECT (CTAS) 查询时,我得到例外:“HIVE_PATH_ALREADY_EXISTS: Target directory for table”。

解决方法

如果在 CTAS 查询中使用 external_location 参数,请确保指定空的 Amazon Simple Storage Service (Amazon S3) 位置。用于存储 CTAS 查询结果的 Amazon S3 位置必须不含任何数据。当您运行 CTAS 查询时,该查询会检查 Amazon S3 存储桶中的路径位置或前缀是否不含任何数据。如果 Amazon S3 位置已包含数据,则查询不会覆盖该数据。

要使用 CTAS 查询中包含数据的 Amazon S3 位置,请删除存储桶中的键前缀位置中的数据。否则,您的 CTAS 查询将失败,并收到例外“HIVE_PATH_ALREADY_EXISTS”。

如果现有 Athena 表指向您要在 CTAS 查询中使用的 Amazon S3 位置,则执行以下操作:

  1. 删除 Athena 表
  2. 删除 S3 存储桶的键前缀位置中的数据

相关信息

CTAS 表属性

CTAS 查询的注意事项和限制

AWS 官方
AWS 官方已更新 3 年前