当我在 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 位置,则执行以下操作:
- 删除 Athena 表。
- 删除 S3 存储桶的键前缀位置中的数据。
相关信息
CTAS 表属性
CTAS 查询的注意事项和限制