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

相关推荐
郑寿昌7 小时前
IIoT本体迁移的领域扩展机制
服务器·前端·microsoft
Keven__Java8 小时前
CPU、内存占用过高,关闭防病毒服务 Microsoft Defender
microsoft
GISer_Jing12 小时前
《Claude Code Hooks:AI编程工具的高级控制指南》
前端·人工智能·microsoft·ai编程
YJlio17 小时前
1 4.1 微软商店的使用(Microsoft Store:下载/安装/管理应用与游戏)
运维·hive·hadoop·windows·游戏·microsoft·计算机外设
YJlio17 小时前
1 1.2 Windows 账户的分类:管理员 / 标准 / 来宾 + 微软账户 vs 本地账户
人工智能·python·microsoft·ai·chatgpt·openai·agent
chaofan98017 小时前
一张照片秒变3D模型!微软Copilot 3D正在颠覆三维创作的游戏规则
人工智能·microsoft·copilot
❀͜͡傀儡师17 小时前
不愧是微软出品的工具!
microsoft
一心向上的Lee17 小时前
【Windows篇】Windows更新/微软商店下载出现0x80004002问题的解决办法
windows·microsoft
CXOCTO17 小时前
从折腾到优雅:完美替换 Windows 默认微软雅黑字体的终极指南
windows·microsoft