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

相关推荐
骑士雄师17 小时前
17.2 通过 Config 传入用户名 → 工具1存入 State → 工具2读取 State 并返回答案
服务器·windows·microsoft
热爱学习的小翁同学18 小时前
Azure Automation Runbook 获取托管标识的访问令牌(Access Token)
microsoft·azure
川石课堂软件测试18 小时前
UI自动化测试|XPath元素定位实践
功能测试·测试工具·jmeter·microsoft·ui·postman·harmonyos
骑士雄师18 小时前
16.1深入讲解 LangGraph 的静态配置 configurable
windows·microsoft
jghhh0120 小时前
C# 图片水印工具(支持9个位置)
数据库·microsoft·c#
Yan-英杰2 天前
从零玩转搜索引擎 API: 多引擎整合实战
服务器·前端·microsoft
步步为营DotNet2 天前
Blazor 在边缘计算客户端应用中的创新实践与深度解析
人工智能·microsoft·边缘计算
小鹿软件办公2 天前
微软为 Windows 10、11 及 Server 安装镜像发布 Defender 更新
microsoft·defender
小刘的干货分享2 天前
微软必应搜索推广:触达高价值决策层的PC端独占流量
microsoft·搜索引擎·微软
薛定猫AI2 天前
【技术干货】DeepSeek 桌面智能体应用全解析:开源 AI Agent 平台实战部署与 API 调用指南
人工智能·microsoft