我尝试将Dataframe的内容写入现有的分区托管配置单元表,如下所示:
outputDF.write.mode("Overwrite").insertInto(targetTable)
目标表是兽人,我想保留它。使用saveastable会将表拖放并重新创建为parquet(请参见此处:saveastable和insertinto在不同的savemode中有何区别?)。
问题是对于我的一些表,我需要覆盖整个表的数据(类似于截断),而不仅仅是特定的分区。
我不清楚在这种情况下是否支持覆盖,如果支持,我做错了什么。sparksession设置以下配置值:
.config("spark.sql.sources.partitionOverwriteMode", "static"/"dynamic")
.config("hive.exec.dynamic.partition", "true")
.config("hive.exec.dynamic.partition.mode", "nonstrict")
我错过什么了吗?
另外,我怀疑这可以通过SQLAPI实现,但我正在尝试避免它。
标准差_
1条答案
按热度按时间kqhtkvqz1#