如何批量删除AWS S3多子文件夹中的Parquet文件?
AWS S3批量删除Parquet文件方案
方案b:AWS Glue作业Python脚本(优先推荐)
1. 遍历所有子文件夹删除所有Parquet文件
以下脚本会递归遍历指定存储桶下的所有路径,自动筛选并删除所有.parquet文件。Glue作业默认已集成boto3,无需额外安装依赖:
import boto3 def delete_parquet_files(bucket_name): s3 = boto3.client('s3') paginator = s3.get_paginator('list_objects_v2') # 分页遍历存储桶内所有对象 page_iterator = paginator.paginate( Bucket=bucket_name ) for page in page_iterator: if 'Contents' not in page: continue # 筛选出Parquet文件 parquet_objects = [{'Key': obj['Key']} for obj in page['Contents'] if obj['Key'].endswith('.parquet')] if parquet_objects: # 批量删除(单次最多删除1000个对象) s3.delete_objects( Bucket=bucket_name, Delete={'Objects': parquet_objects} ) print(f"Deleted {len(parquet_objects)} parquet files") # 替换为你的存储桶名称 delete_parquet_files('your-bucket-name')
2. 指定固定结构子文件夹删除
如果只需要删除特定路径结构下的Parquet文件(例如s3://bucket-name/year=*/month=*/),只需修改分页查询的Prefix参数,精准定位目标路径:
import boto3 def delete_parquet_in_prefix(bucket_name, prefix): s3 = boto3.client('s3') paginator = s3.get_paginator('list_objects_v2') page_iterator = paginator.paginate( Bucket=bucket_name, Prefix=prefix ) for page in page_iterator: if 'Contents' not in page: continue parquet_objects = [{'Key': obj['Key']} for obj in page['Contents'] if obj['Key'].endswith('.parquet')] if parquet_objects: s3.delete_objects( Bucket=bucket_name, Delete={'Objects': parquet_objects} ) print(f"Deleted {len(parquet_objects)} parquet files under {prefix}") # 替换为你的存储桶和目标前缀(支持通配符匹配固定结构) delete_parquet_in_prefix('your-bucket-name', 'year=*/month=*/')
方案a:AWS CLI批量删除
1. 删除存储桶内所有Parquet文件
直接递归遍历并删除所有.parquet文件:
aws s3 rm s3://your-bucket-name/ --recursive --exclude "*" --include "*.parquet"
2. 指定前缀路径删除
如果只需要删除特定子文件夹下的文件,添加路径前缀即可:
aws s3 rm s3://your-bucket-name/target-folder/ --recursive --exclude "*" --include "*.parquet"
另一种方式是利用s3 sync命令,通过同步空本地文件夹实现删除:
# 先创建空文件夹 mkdir empty-folder # 同步空文件夹到目标S3路径,删除所有匹配的Parquet文件 aws s3 sync empty-folder s3://your-bucket-name/target-folder/ --delete --exclude "*" --include "*.parquet" # 删除本地空文件夹 rmdir empty-folder
内容的提问来源于stack exchange,提问作者P.Max
相关产品推荐
相关产品推荐

