Spark 写入 S3 存储选项

2023-12-29

我正在将 Spark 数据帧保存到 S3 存储桶。保存文件的默认存储类型是STANDARD。我需要它是 STANDARD_IA。有什么选择可以实现这一目标。我查看了 Spark 源代码,发现 Spark DataFrameWriter 中没有这样的选项https://github.com/apache/spark/blob/branch-2.1/sql/core/src/main/scala/org/apache/spark/sql/DataFrameWriter.scala https://github.com/apache/spark/blob/branch-2.1/sql/core/src/main/scala/org/apache/spark/sql/DataFrameWriter.scala

下面是我用来写入 S3 的代码:

val df = spark.sql(<sql>)
df.coalesce(1).write.mode("overwrite").parquet(<s3path>)

编辑:我现在使用 CopyObjectRequest 更改创建的镶木地板的存储类型:

val copyObjectRequest = new CopyObjectRequest(bucket, key, bucket, key).withStorageClass(<storageClass>)
s3Client.copyObject(copyObjectRequest)

截至 2022 年 7 月,这已在 hadoop 源代码树中实现HADOOP-12020 https://issues.apache.org/jira/browse/HADOOP-12020由 AWS S3 工程师设计。

它仍处于稳定状态,应该会在 2022 年底发布的 hadoop 3.3.x 的下一个功能版本中发布。

  • 任何在发布之前阅读此内容的人:代码是可以自己构建的。
  • 任何在 2023 年以后做好准备的人。升级到hadoop 3.3.5或更高版本
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spark 写入 S3 存储选项 的相关文章

随机推荐