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 设置好定时器就行了,

相关推荐
苦青藤4 小时前
从零搭建 WSUS 隔离网络:完整实战指南(内网离线补丁分发)
运维·windows·microsoft
梦奇不是胖猫9 小时前
《从0到1带你Obsidian接入DeepSeek》
microsoft
BlockWay11 小时前
WEEX Labs 周度观察:微软-OpenAI 合作调整与AI 多云趋势
大数据·人工智能·算法·安全·microsoft
王十二er15 小时前
【CodeX下载安装——解决微软商店无法打开或打开后无法正常下载】
microsoft
女神下凡16 小时前
PERSONAL.XLSB打开后,为什么在打开XLSX文件为什么会提示要 只读 打开
microsoft
小鹿软件办公17 小时前
微软发布旗下首款具备思考能力的 MAI-Thinking-1 AI 模型
人工智能·microsoft·语音识别
SEO-狼术18 小时前
Microsoft Announces Availability
microsoft
知识浅谈18 小时前
人工智能日报 每日AI新闻(2026年6月3日):微软Agent生态、Google反诈AI与国产模型应用提速
人工智能·microsoft
打不死的技术工小强18 小时前
2026 Claude Code爬虫指南:如何搭建AI自动化数据采集系统?
microsoft
特立独行的猫a18 小时前
鸿蒙 PC 移植记:将微软的 `edit` 轻量级终端编辑器带到 OpenHarmony
microsoft·rust·编辑器·harmonyos·鸿蒙pc·edit