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

相关推荐
ciku1 小时前
Spring Ai Advisors
人工智能·spring·microsoft
智能汽车人8 小时前
行业分析---领跑汽车2025第二季度财报
人工智能·microsoft
Leinwin1 天前
微软行业案例:英格兰足球超级联赛(Premier League)
microsoft
张人玉2 天前
C#读取文件, IO 类属性及使用示例
microsoft·c#
爱知菜2 天前
Azure AI Search 探索总结
azure·rag·ai search
edisao2 天前
第一篇:从C-803金融战线到K-119认知武器:五步打造多维度竞争护城河
microsoft·金融
电手3 天前
微软自曝Win 11严重漏洞:可导致全盘数据丢失
microsoft
季春二九3 天前
Windows 11 首次开机引导(OOBE 阶段)跳过登录微软账户,创建本地账户
windows·microsoft
王者鳜錸4 天前
PYTHON让繁琐的工作自动化-PYTHON基础
python·microsoft·自动化
7723894 天前
解决 Microsoft Edge 显示“由你的组织管理”问题
前端·microsoft·edge