Azure Databricks 集群合并小文件与删除过多的历史版本

原因是:databricks 集群的数据底层是HDFS虽然是spark做为引擎读写如果没有及时合并也一样会因为小文件问题造成大量的资源消耗,也就会越来越慢。目前采用的主要方式,定时合并,与版本删除

1、python 脚本如下有用到的同学可以参考下

bash 复制代码
# 合并
for database_name in database_list:
    sqlQueryShowTables = "SHOW TABLES FROM {0}".format(database_name)
    tablesDF = spark.sql(sqlQueryShowTables).collect()

    for table in tablesDF:
        sqlOptimizeTable = "OPTIMIZE {0}.{1}".format(database_name, table['tableName'])
        try:
            spark.sql(sqlOptimizeTable)
            print("INFO: Optimize table {0}.{1} completed.".format(database_name, table['tableName']))
        except Exception as e:
            print("ERROR: Optimize table {0}.{1} failed.".format(database_name, table['tableName']))
bash 复制代码
# 删除多的版本
for database_name in database_list:
    sqlQueryShowTables = "SHOW TABLES FROM {0}".format(database_name)
    tablesDF = spark.sql(sqlQueryShowTables).collect()

    for table in tablesDF:
        sqlVACUUMTable = "VACUUM {0}.{1} RETAIN 168 HOURS".format(database_name, table['tableName'])
        try:
            spark.sql(sqlVACUUMTable)
            print("INFO: VACUUM table {0}.{1} completed.".format(database_name, table['tableName']))
        except Exception as e:
            print("ERROR: VACUUM table {0}.{1} failed.".format(database_name, table['tableName']))

2、在workflows 设置好定时器就行了,

相关推荐
编码者卢布5 分钟前
【Azure Fabric Service】Service Fabric 节点 Error:数据盘挂载失败与 CHKDSK 修复
microsoft·azure·fabric
码云数智-园园21 小时前
折叠面板不用 JS?<details> 和 <summary> 标签的隐藏用法
microsoft
Miya_Ye21 小时前
Azure AI Search(1)
microsoft·azure·ai search
Data_Journal2 天前
Scrapyd:分步教程
开发语言·python·microsoft·golang·编辑器·html·iphone
霸道流氓气质2 天前
Spring AI Function Calling实现原理与自定义函数
java·spring·microsoft
小弥儿2 天前
GitHub今日热榜 | 2026-09-01:迷你小模型登场
学习·microsoft·开源·github
海盗12342 天前
微软技术日报-2026-08-31
microsoft
小鹿软件办公2 天前
微软官方提示:Windows 安全中心出现 Defender 已关闭为虚假告警
安全·microsoft
阿崽meitoufa2 天前
Prompt Engineering for Agent:让 Agent 稳定运行的提示词写法
网络·人工智能·microsoft
海盗12342 天前
微软技术日报-2026-09-01
microsoft