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

相关推荐
终端域名19 小时前
虚拟货币域名:加密货币与域名的碰撞 —— 构建未来互联网新生态
microsoft·区块链·加密货币·数字货币域名·网站域名
Dragon水魅20 小时前
使用 Easy Dataset 批量构建标准化微调数据集
microsoft
hkNaruto21 小时前
【AI】AI学习笔记:翻译:langGraph 持久化执行 以及文档部分理解
笔记·学习·microsoft
AI营销干货站21 小时前
原圈科技AI市场分析
人工智能·microsoft
果粒蹬i21 小时前
AI Agent工业化落地:任务拆解 + 工具调用 + 反馈优化三板斧
人工智能·microsoft
大模型实验室Lab4AI21 小时前
从 0 到 1 落地智能家居 AI 交互:LLaMA Factory & Qwen3-4B 微调实战指南
人工智能·microsoft
自己的九又四分之三站台1 天前
5:微软AI库Microsoft.Extensions.AI的使用与流式响应
人工智能·microsoft
dgaf1 天前
(2023-06-07) Win32API【1】-- DevC++做一个窗口
c++·windows·microsoft
sensor_WU2 天前
【Delphi】Microsoft Store 上架指南(一):Ad hoc 和 Store 区别
microsoft
xb11322 天前
WinForms 多窗体应用程序详解
数据库·microsoft·c#