gpt4 book ai didi

amazon-s3 - UPSERT 拼花 Pyspark

转载 作者:行者123 更新时间:2023-12-01 10:17:38 26 4
gpt4 key购买 nike

我在 s3 中有带有以下分区的 Parquet 文件:
年/月/日/some_id
使用 Spark (PySpark),每天我都想最后一次 UPSERT 14 天 - 我想替换 s3 中的现有数据(每个分区一个 Parquet 文件),但不删除 14 天之前的天数..
我尝试了两种保存模式:
append - 不好,因为它只是添加了另一个文件。
覆盖 - 删除过去的数据和其他分区的数据。

有什么方法或最佳实践可以克服这个问题吗?我应该在每次运行中读取 s3 中的所有数据,然后再写回吗?也许重命名文件以便 append 将替换 s3 中的当前文件?

非常感谢!

最佳答案

我通常会做类似的事情。就我而言,我执行 ETL 并将一天的数据附加到 Parquet 文件:

关键是要处理要写入的数据(在我的情况下是实际日期),确保按 date 进行分区列并覆盖 的所有数据当前日期 .

这将保留所有旧数据。举个例子:

(
sdf
.write
.format("parquet")
.mode("overwrite")
.partitionBy("date")
.option("replaceWhere", "2020-01-27")
.save(uri)
)

你也可以看看 delta.io这是 的扩展 Parquet 格式提供了一些有趣的功能,如 交易。

关于amazon-s3 - UPSERT 拼花 Pyspark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59922250/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com