删除__HIVE_DEFAULT_PARTITION__使用spark笔记本



尝试了几个小时,用spark笔记本删除了delta lake表中列分区值为__HIVE_DEFAULT_PARTITION__的记录。我想出来了,会把答案贴出来的。对于这个记录,我的分区列命名为Period。当分区列的值为NULL时,就会发生这种情况。

确保运行此操作时没有其他笔记本正在更新delta lake表。我的表中的分区列名为Period。sourceFile是一个变量,包含要生效的存储帐户容器和文件夹的位置。

from pyspark.sql.functions import *
from pyspark.sql.types import *
spark.conf.set("spark.databricks.delta.retentionDurationCheck.enabled",False) 
from delta.tables import *
from pyspark.sql.functions import *
deltaTable = DeltaTable.forPath(spark, sourceFile)
deltaTable.delete("Period is NULL")
deltaTable.vacuum(0)

最新更新