Apache spark 使用Spark覆盖S3文件

Apache spark 使用Spark覆盖S3文件,apache-spark,amazon-s3,Apache Spark,Amazon S3,我有一个用例,在两个数据集之间执行连接之后,我需要将每一行写入S3上的一个单独文件(更新现有文件)。Spark支持这一点吗 如果不是,我们可以显式地使用S3客户机将每个条目写入S3中的新文件吗?有什么副作用我应该注意吗?这与Spark无关。。S3不支持更新,您应该立即存储整个块 理论上,您可以使用(MPU)连接多个s3对象部件,但MPU旨在支持大于5GB的上传,最小部件大小为5MB 每个作业都可以创建新的S3对象()正如我在评论中所说的,S3中大量的小文件通常是一种不好的做法。也就是说,如果要写

我有一个用例,在两个数据集之间执行连接之后,我需要将每一行写入S3上的一个单独文件(更新现有文件)。Spark支持这一点吗


如果不是,我们可以显式地使用S3客户机将每个条目写入S3中的新文件吗?有什么副作用我应该注意吗?

这与Spark无关。。S3不支持更新,您应该立即存储整个块

理论上,您可以使用(MPU)连接多个s3对象部件,但MPU旨在支持大于5GB的上传,最小部件大小为5MB


每个作业都可以创建新的S3对象()

正如我在评论中所说的,S3中大量的小文件通常是一种不好的做法。也就是说,如果要写入的记录数量有限,则有不同的选择

以下是一些例子:

  • 使用DataFrameWriter、覆盖模式和唯一的分区 纵队
  • 使用df.rdd.mapPartitions并将每个记录写入S3 手动使用hadoop S3文件系统

祝你好运。

如果问题中不清楚,我道歉,但我的意思是更新,通过更改内容覆盖S3文件。将更新问题。“将每行写入单独的文件”。。这不是s3的有效用例。S3对于大量的小文件来说通常是一个非常糟糕的存储。因此,除非您只有少量记录,否则我建议不要像那样使用S3。(对数据库使用DataFrameWriter会更好)