有什么方法可以设置s3存储桶以将其附加到每次运行的现有对象上?

时间:2019-03-14 11:17:59

标签: amazon-web-services amazon-s3 parquet

当我们每小时运行spark应用程序时,我们需要附加到现有的S3对象。我已经尝试过此代码:

df.coalesce(1).write.partitionBy("name").mode("append").option("compression", "gzip").parquet("s3n://path") 

此应用程序为每次运行创建新的实木复合地板文件。因此,我正在寻找一种解决方法来实现这一要求。

问题是:

我们如何配置S3存储桶以将其添加到现有对象?

1 个答案:

答案 0 :(得分:1)

不可能在Amazon S3中附加到对象。它们可以被覆盖,但不能附加。

显然有一个偷偷摸摸的方法,可以将文件多部分复制,将“源”设置为文件,然后设置为一些其他数据。但是,这无法通过您显示的方法来实现。

如果您希望向外部表中添加其他数据(例如,由EMR或Athena使用),则只需在所需文件夹的正确文件夹中添加其他文件