如何写一个spark数据帧S3与MD5头?



我有一个Spark DataFrame,我需要写一个S3对象锁定启用桶。一个简单的写入会导致这个错误

df.write.parquet(output_path)
com.amazonaws.services.s3.model.AmazonS3Exception: 
Content-MD5 HTTP header is required for Put Object requests with Object Lock parameters

我该怎么解决这个问题?

有很多方法可以处理boto3类型的上传,但是如何处理spark.df.write

s3_client.put_object(
Bucket=<S3_BUCKET_NAME>, 
Key=<KEY>, 
Body=open(<FILE_NAME>, "rb"),
ContentMD5=<MD5_HASH>
)

hadoop的s3a连接器恐怕不支持

在OSS项目中通常是这样的,您的参与将在这里提供帮助:https://issues.apache.org/jira/browse/HADOOP-15224。该JIRA创建于2018年,并没有引起关注,因为实际上并不需要它。我们也许可以重新讨论这个问题。

不知道EMR s3连接器。