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

相关推荐
小满Autumn13 小时前
WPF 入门:XAML 语法、布局与数据绑定
microsoft·c#·.net·wpf
步步为营DotNet15 小时前
解密.NET 11:C# 14 在客户端响应式编程的突破与实践
microsoft·c#·.net
问今域中15 小时前
Spring AI结构化输出
windows·microsoft
1892280486115 小时前
NQ486固态MT29F16T08GSLDHL8-QM:D
大数据·人工智能·科技·microsoft·缓存
IT技术分享社区16 小时前
微软Office 2024离线版安装指南与功能亮点介绍
microsoft·微软技术·office·电脑干货
郑寿昌2 天前
2026 全球 AI 工厂市场格局与发展趋势
大数据·人工智能·microsoft
qq_283720052 天前
RAG 重排序(Rerank)优化:BGE-Reranker、Cross-Encoder 实战详解
microsoft
Lucky_Turtle2 天前
【Azure】微软云文件存储
microsoft·flask·azure
松果财经2 天前
从“单点收付”到“跨国司库”,金融为何是出海深水区的关键变量?
人工智能·microsoft·金融
公子小六3 天前
基于.NET的Windows窗体编程之WinForms打印
windows·microsoft·c#·.net·winforms