gpt4 book ai didi

apache-spark - 仅覆盖已分区Spark数据集中的某些分区

转载 作者:行者123 更新时间:2023-12-03 14:31:34 24 4
gpt4 key购买 nike

我们如何覆盖已分区的数据集,但仅覆盖要更改的分区?例如,重新计算上周的日常工作,仅覆盖上周的数据。

默认的Spark行为是覆盖整个表,即使只写一些分区也是如此。

最佳答案

从Spark 2.3.0开始,这是覆盖表时的一个选项。要覆盖它,您需要将新的spark.sql.sources.partitionOverwriteMode设置设置为dynamic,需要对数据集进行分区,并且需要使用写入模式overwrite
scala 中的示例:

spark.conf.set(
"spark.sql.sources.partitionOverwriteMode", "dynamic"
)
data.write.mode("overwrite").insertInto("partitioned_table")

我建议在写入之前根据您的分区列进行重新分区,因此每个文件夹最终不会包含400个文件。

在Spark 2.3.0之前,最好的解决方案是启动SQL语句以删除这些分区,然后使用模式追加将其写入。

关于apache-spark - 仅覆盖已分区Spark数据集中的某些分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50006526/

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