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

如何获取Databricks工作区所有笔记本列表并导出名称路径到CSV

Databricks工作区全量笔记本清单导出方案

Databricks CLI原生的databricks workspace list命令没有自带递归遍历参数,你可以通过以下两种方式实现全量笔记本信息采集并导出为CSV:

方案1:本地Shell脚本递归调用Databricks CLI

提前完成Databricks CLI的认证配置后,运行以下Shell脚本即可:

#!/bin/bash
# 定义输出CSV文件路径
OUTPUT_CSV="databricks_notebooks.csv"
# 写入CSV表头
echo "notebook_name,full_path" > "$OUTPUT_CSV"

# 递归遍历工作区函数
traverse_workspace() {
    local current_path="$1"
    # 调用CLI获取当前路径下的所有对象,输出格式为<对象类型> <对象路径>
    databricks workspace list "$current_path" --output tsv | while read -r obj_type obj_path; do
        if [ "$obj_type" = "NOTEBOOK" ]; then
            # 提取笔记本名称
            notebook_name=$(basename "$obj_path")
            # 写入CSV,添加双引号避免路径含逗号时格式错乱
            echo "\"$notebook_name\",\"$obj_path\"" >> "$OUTPUT_CSV"
        elif [ "$obj_type" = "DIRECTORY" ]; then
            # 遇到目录递归遍历
            traverse_workspace "$obj_path"
        fi
    done
}

# 从根路径开始遍历,可替换为你需要的指定目录,例如/Repos
traverse_workspace "/"
echo "导出完成,结果存储在当前目录下的 $OUTPUT_CSV"

注意事项:

  • 执行前先运行databricks workspace list /确认CLI和工作区连接正常
  • 如果只需要遍历特定目录,将最后一行的/替换为对应目录路径即可
  • 若工作区对象数量较多,脚本运行时间会相应变长,请耐心等待

方案2:工作区笔记本内运行Python代码直接导出

如果不想配置本地CLI环境,可直接在Databricks工作区新建一个Python笔记本运行以下代码:

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

# 初始化工作区客户端,在工作区内运行无需额外配置认证
w = WorkspaceClient()
# 定义CSV输出路径,存放在DBFS的FileStore目录方便下载
output_path = "/dbfs/FileStore/databricks_notebooks.csv"
notebook_records = []

def traverse_workspace(path: str):
    for obj in w.workspace.list(path, recursive=False):
        if obj.object_type == workspace.ObjectType.NOTEBOOK:
            # 提取笔记本名称和完整路径
            notebook_name = obj.path.split("/")[-1]
            notebook_records.append({
                "notebook_name": notebook_name,
                "full_path": obj.path
            })
        elif obj.object_type == workspace.ObjectType.DIRECTORY:
            # 递归遍历子目录
            traverse_workspace(obj.path)

# 从根路径开始遍历,可替换为指定目录
traverse_workspace("/")

# 写入CSV文件
with open(output_path, "w", newline="", encoding="utf-8") as f:
    writer = csv.DictWriter(f, fieldnames=["notebook_name", "full_path"])
    writer.writeheader()
    writer.writerows(notebook_records)

print(f"导出完成,文件路径:{output_path},可通过工作区文件管理功能下载该文件")

注意事项:

  • 运行该代码的账号需要有对应遍历目录的读权限
  • 生成的文件可直接在工作区的「数据」-「DBFS」-「FileStore」目录下找到并下载
  • 若不需要导出整个工作区,修改traverse_workspace("/")中的根路径即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:15:04