如何在使用awswrangler时指定Athena查询结果的存储位置
可以指定自定义S3存储位置
当然可以,你只需要利用 awswrangler.athena.read_sql_query 提供的 s3_output 参数,就能指定自定义的S3存储位置,替代默认自动生成的桶。
修改后的代码示例
import awswrangler as wr db_name = "test_db" table_name = "test_table" query = f"SELECT * FROM {db_name}.{table_name}" # 替换成你自己的S3路径,格式为 s3://<桶名>/<前缀目录>/ custom_s3_output_path = "s3://your-custom-bucket/athena-query-results/" df = wr.athena.read_sql_query( sql=query, database=db_name, s3_output=custom_s3_output_path )
关键注意点
- 确保你的AWS本地凭证对指定的S3路径拥有读写权限:至少需要
s3:PutObject(写入查询结果)和s3:GetObject(将结果加载到DataFrame)权限。 - 如果指定的S3桶还不存在,你可以提前手动创建,或者确保凭证拥有
s3:CreateBucket权限,awswrangler会自动帮你创建桶。 - 建议在路径末尾加上斜杠,避免生成的对象路径出现不必要的拼接错误。
内容的提问来源于stack exchange,提问作者d.b
相关产品推荐
相关产品推荐

