You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Databricks DBFS中tree命令缺失如何快速统计文件大小?

方案1:使用Databricks原生dbutils工具(推荐)

该方式无需安装任何额外依赖,直接调用DBFS元数据接口统计,速度远高于shell层的ls/tree命令,适合长期使用。
你可以直接在Python单元格运行以下代码,实现和tree --du -h | grep "G]"一致的效果,即列出/dbfs下所有大小≥1G的目录/文件:

from pathlib import Path

def stat_dbfs_size(root_path: str = "/", min_size_gb: int = 1) -> None:
    min_size_threshold = min_size_gb * 1024 ** 3
    # 递归遍历所有文件条目
    all_items = dbutils.fs.ls(root_path, recurse=True)
    dir_size_map = {}
    file_size_list = []
    
    for item in all_items:
        if item.isDir():
            continue
        # 累计目录总大小
        parent_dir = str(Path(item.path).parent).replace("dbfs:", "/dbfs/")
        dir_size_map[parent_dir] = dir_size_map.get(parent_dir, 0) + item.size
        # 统计单文件大小
        if item.size >= min_size_threshold:
            file_size_list.append((item.size, item.path.replace("dbfs:", "/dbfs/")))
    
    # 输出符合大小要求的目录
    for dir_path, total_size in dir_size_map.items():
        if total_size >= min_size_threshold:
            size_gb = round(total_size / 1024**3, 2)
            print(f"{size_gb} GB\t{dir_path}")
    # 输出符合大小要求的单文件
    for file_size, file_path in file_size_list:
        size_gb = round(file_size / 1024**3, 2)
        print(f"{size_gb} GB\t{file_path}")

# 调用统计根目录下≥1G的条目
stat_dbfs_size("/", min_size_gb=1)

注意:dbutils.fs.ls的recurse参数仅在Databricks Runtime 11.0及以上版本支持,低版本可以自行实现递归遍历逻辑即可。

方案2:安装tree命令(临时使用可选)

如果确实需要使用tree命令,可以通过apt直接在集群节点安装,仅需要在%sh单元格执行以下安装命令即可:

%sh
apt-get update > /dev/null && apt-get install -y tree > /dev/null

安装完成后即可运行你原来的统计命令:

%sh
cd /dbfs && tree --du -h | grep "G]"

注意:Databricks集群节点的系统修改是非持久化的,集群重启后安装的tree会失效,需要重新执行安装命令。

内容的提问来源于stack exchange,提问作者soMuchToLearnAndShare

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 20:15:09