假设我有一个由列分区的现有数据框。我知道要更新特定分区,我需要使用partitionOverwriteMode。问题是,如果我使用 s 设置上述内容...

问题描述 投票:0回答:1
spark.conf.set('partitionOverwriteMode', 'dynamic')

设置上述内容,它就可以工作。但是当我使用

设置它时
df.write.mode('overwrite').option("partitionOverwriteMode", "dynamic").insertInto('db1.t1')
这不起作用。它不会删除分区文件夹,而是删除其中的所有数据,并且仅保留适合当前数据帧的分区数据。

我知道我可以通过使用spark.conf.set使其工作。我想知道为什么它不能以这种方式工作。如有任何帮助,我们将不胜感激。

我正在使用 Azure Databricks 13.3 LTS 版本。

好像代码编写顺序不一样

pyspark azure-databricks
1个回答
0
投票

df.write.option("partitionOverwriteMode", "dynamic").mode("overwrite").partitionBy("partitionColumn").save("output.parquet")

© www.soinside.com 2019 - 2024. All rights reserved.