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

请求获取Databricks(AWS)共享工作区全对象遍历代码(含子目录)

列出Databricks(AWS)指定路径下所有对象的代码方案

方法一:使用Databricks CLI递归列出

适合批量操作或脚本化场景,步骤如下:

  1. 安装Databricks CLI(未安装时执行):
pip install databricks-cli
  1. 配置目标Databricks实例:
databricks configure --token

执行后依次输入实例地址 scor-bigdata.cloud.databricks.com、个人访问令牌(PAT)完成配置。

  1. 递归列出对应路径对象:
  • 若目标是Workspace(含Notebook、库等工作区对象):
databricks workspace list --recursive "/Shared Workspace/CDO"
  • 若目标是DBFS(分布式文件系统,含数据文件、目录):
databricks fs ls --recursive "/dbfs/Shared Workspace/CDO"

方法二:在Databricks Notebook中用Python递归遍历

适合在Notebook内直接执行,可自定义后续清理逻辑:

场景1:遍历Workspace工作区对象

需提前安装databricks-sdk库:

from databricks.sdk import WorkspaceClient
from databricks.sdk.service import workspace

# 初始化工作区客户端
w = WorkspaceClient(host="https://scor-bigdata.cloud.databricks.com")

def traverse_workspace(path: str):
    # 获取当前路径下所有对象
    objects = w.workspace.list(path)
    for obj in objects:
        # 打印对象类型与路径
        print(f"类型: {obj.object_type.name}, 路径: {obj.path}")
        # 递归遍历子目录
        if obj.object_type == workspace.ObjectType.DIRECTORY:
            traverse_workspace(obj.path)

# 启动遍历
traverse_workspace("/Shared Workspace/CDO")

场景2:遍历DBFS文件系统对象

使用内置dbutils.fs,无需额外安装依赖:

def traverse_dbfs(path: str):
    # 获取当前路径下所有对象
    objects = dbutils.fs.ls(path)
    for obj in objects:
        # 判断对象类型并打印
        obj_type = "文件" if obj.isFile() else "目录"
        print(f"类型: {obj_type}, 路径: {obj.path}")
        # 递归遍历子目录
        if not obj.isFile():
            traverse_dbfs(obj.path)

# 启动遍历,DBFS路径支持/dbfs/前缀或dbfs:/前缀
traverse_dbfs("/dbfs/Shared Workspace/CDO")

常见报错排查

  • 路径格式错误:Workspace路径需以/开头,DBFS路径需使用/dbfs/或dbfs:/前缀,避免层级遗漏。
  • 权限不足:确认账号拥有目标路径的读取权限,共享工作区可能需管理员额外授权。
  • 实例配置错误:CLI或SDK配置的实例地址需准确,个人访问令牌需有效且具备对应权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 05:27:27