此错误可能是由于 AWS Glue 2.0 Pyspark 作业退出时未完成清理导致的。为了解决这个问题,可以手动删除 .staging 目录或者使用 AWS S3 SDK 执行基于前缀的删除操作。以下是使用 AWS S3 SDK 执行前缀删除操作的 Python 代码示例:
import boto3
s3 = boto3.resource('s3')
bucket_name = 'your-bucket-name'
prefix = 'your-bucket-prefix/.staging'
bucket = s3.Bucket(bucket_name)
objects = bucket.objects.filter(Prefix=prefix)
delete_count = 0
error_count = 0
for obj in objects:
try:
obj.delete()
delete_count += 1
except Exception as e:
print(e)
error_count += 1
print(f'Delete {delete_count} objects, {error_count} errors.')
此代码会在指定的 bucket 和 prefix 下删除所有以 .staging 开头的对象。请替换 bucket_name 和 prefix 变量以适应您的环境。