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

Azure Databricks Repos读取.ipynb文件失败,求解决方案

Azure Databricks Repos无法读取.ipynb文件的解决思路

问题背景

  • 在Azure Databricks Repos中读取.ipynb文件时触发Error 95报错,但xlsx等其他格式文件可正常读取
  • 已尝试的排查动作:
    • 带/不带.ipynb扩展名指定文件路径
    • 用chmod修改文件权限
    • 将文件复制到tmp/目录后尝试读取
    • 使用io、pathlib库执行读取操作
    • 将文件从Repos复制到DBFS后读取
  • 推测核心原因是Azure Databricks对笔记本文件的安全限制,拦截了直接文件IO读取操作

解决思路

1. 通过Databricks Workspace API读取笔记本内容

Azure Databricks将Repos中的.ipynb文件视为Workspace级别的笔记本资源,而非普通文本文件,直接文件IO会被拦截。可以用官方SDK调用API获取内容:

from databricks.sdk import WorkspaceClient
import json

# 替换为你的Repos中.ipynb文件的完整Workspace路径
notebook_path = "/Repos/your_username/your_repo_name/target_notebook.ipynb"

# 初始化Workspace客户端
w = WorkspaceClient()
# 以源码格式下载笔记本内容
notebook_content = w.workspace.download(notebook_path, format="SOURCE")
# 解析为JSON格式(.ipynb本质是JSON结构)
notebook_json = json.loads(notebook_content)

2. 重命名文件绕过笔记本格式拦截

将.ipynb文件临时重命名为非笔记本后缀(比如.ipynb.txt),让平台将其识别为普通文本文件,再进行读取:

# 先在Repos界面手动将target_notebook.ipynb重命名为target_notebook.ipynb.txt
with open("/dbfs/Repos/your_username/your_repo_name/target_notebook.ipynb.txt", "r") as f:
    raw_content = f.read()
# 读取后还原为.ipynb的JSON结构
notebook_json = json.loads(raw_content)

3. 用Databricks CLI导出后读取

通过CLI将Repos中的笔记本导出到DBFS或本地,再读取导出后的文件:

# 先配置Databricks CLI(需提前安装并通过token认证)
databricks configure --token

# 将Repos中的笔记本导出到DBFS指定路径
databricks workspace export /Repos/your_username/your_repo_name/target_notebook.ipynb /dbfs/tmp/exported_notebook.ipynb

在Notebook中读取导出的文件:

with open("/dbfs/tmp/exported_notebook.ipynb", "r") as f:
    content = f.read()

4. 检查Repos与Workspace权限

  • 确认当前用户对目标Repos仓库拥有REPO_READ权限(在Databricks控制台的Repos权限设置中查看)
  • 如果是关联的外部Git仓库,确认Git令牌拥有仓库读取权限,且Databricks已完成仓库同步

内容的提问来源于stack exchange,提问作者Antônio Farias

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:12:51