【问题标题】:Tagging objects read by spark on s3标记s3上spark读取的对象
【发布时间】:2019-12-03 13:08:08
【问题描述】:

我使用 pyspark 读取 amazon s3 上 s3 存储桶上的对象。如果我读取了许多 json 文件,然后将其保存为镶木地板文件,则我的存储桶是由

spark.read.json('s3://my-bucket/directory1/')
spark.write.parquet('s3://bucket-with-parquet/', mode='append')

我每天都会在s3://my-bucket/directory1/ 上上传一些新文件,我想将它们更新到s3://bucket-with-parquet/ 有没有办法确保我不会两次更新数据。我的想法是用 spark 标记我读取的每个文件(不知道该怎么做)。然后我可以使用这些标签来告诉 spark 不要在之后再次读取文件(也不知道该怎么做)。如果 AWS 专家可以帮助我,我将不胜感激。

【问题讨论】:

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


    【解决方案1】:

    您可以做几件事,一个是编写一个脚本,该脚本从存储桶的元数据中读取时间戳,并提供当天添加的文件列表。您只能处理此列表中提到的那些文件。 (https://medium.com/faun/identifying-the-modified-or-newly-added-files-in-s3-11b577774729)

    其次,您可以在 S3 存储桶中启用版本控制,以确保如果您覆盖任何文件,您可以检索旧文件。您还可以将 ACL 设置为只读和一次写入权限,如此处所述Amazon S3 ACL for read-only and write-once access

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2017-04-02
      • 1970-01-01
      • 2020-10-29
      • 1970-01-01
      • 2017-06-21
      • 1970-01-01
      • 2020-04-27
      • 1970-01-01
      • 2022-01-13
      相关资源
      最近更新 更多