从 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 池中?