You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Spark Notebook删除Delta Lake表中__HIVE_DEFAULT_PARTITION__分区?

删除Delta Lake表中__HIVE_DEFAULT_PARTITION__分区的记录

当Delta Lake表的分区列存在NULL值时,会自动生成__HIVE_DEFAULT_PARTITION__分区,要清理该分区下的记录,可采用以下两种有效方法:

  • 方法一:匹配NULL值直接删除
    这是最直接的方式,因为__HIVE_DEFAULT_PARTITION__本质就是存储分区列NULL值的分区,直接通过IS NULL条件定位:

    -- Spark SQL 执行
    DELETE FROM your_table_name WHERE Period IS NULL;
    

    对应Scala/Python代码:

    // Scala
    spark.sql("DELETE FROM your_table_name WHERE Period IS NULL")
    
    # Python
    spark.sql("DELETE FROM your_table_name WHERE Period IS NULL")
    

    Delta Lake会自动处理分区的元数据更新和数据清理,无需额外操作。

  • 方法二:直接指定分区名称删除
    若遇到元数据映射问题导致IS NULL条件不生效,可直接指定分区名称__HIVE_DEFAULT_PARTITION__作为删除条件:

    DELETE FROM your_table_name WHERE Period = '__HIVE_DEFAULT_PARTITION__';
    

    也可以通过DeltaTable API执行:

    import io.delta.tables._
    
    val deltaTable = DeltaTable.forPath(spark, "/path/to/your/delta/table")
    deltaTable.delete("Period = '__HIVE_DEFAULT_PARTITION__'")
    

内容的提问来源于stack exchange,提问作者bmukes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 10:25:15