从 Apache Spark 分段上传到 Amazon S3

Posted

技术标签:

【中文标题】从 Apache Spark 分段上传到 Amazon S3【英文标题】:Multipart uploads to Amazon S3 from Apache Spark 【发布时间】:2014-10-12 04:42:55 【问题描述】:

如何让 Apache Spark 在将数据保存到 Amazon S3 时使用分段上传。 Spark 使用RDD.saveAs...File 方法写入数据。当目标以s3n:// 开头时,Spark 会自动使用 JetS3Tt 进行上传,但对于大于 5G 的文件会失败。需要使用分段上传将大文件上传到 S3,这应该对小文件也有好处。 JetS3Tt 支持使用 MultipartUtils 进行分段上传,但 Spark 在默认配置中不使用此功能。有没有办法让它使用这个功能。

【问题讨论】:

【参考方案1】:

这是 s3n 的限制,您可以使用新的 s3a 协议在 S3 中访问您的文件。 s3a 基于 aws-adk 库并支持包括分段上传在内的许多功能。更多详情请看link:

【讨论】:

【参考方案2】:

s3n 似乎正在弃用。

来自他们的documentation

Amazon EMR 使用带有 URI 方案 s3n 的 S3 原生文件系统。虽然这仍然有效,但我们建议您使用 s3 URI 方案以获得最佳性能、安全性和可靠性

【讨论】:

以上是关于从 Apache Spark 分段上传到 Amazon S3的主要内容,如果未能解决你的问题,请参考以下文章

从Apache Kafka到Apache Spark安全地读取数据

Apache Spark 如何将新列从列表/数组附加到 Spark 数据帧

从 csv 文件将数据添加到现有的 apache spark 数据帧

如何使用 Azure Synapse Analytics 将自定义 Python 库导入到 Apache Spark 池中?

从Apache Spark加载PrestoDB表

分段上传到 Google Bigquery