如何从其他Databricks Notebook读取目标Notebook的完整内容?
在Databricks Notebook中读取另一个Notebook的完整内容
你可以使用Databricks内置的dbutils.notebook.export工具读取目标Notebook的完整内容,无需运行它。以下是具体实现方式:
1. 读取为字符串格式
直接导出目标Notebook的源码内容,完整保留所有单元格、魔法命令(如%sql)和原有格式:
# 替换为目标Notebook的工作区完整路径 notebook_path = "/path/to/notebook1" # 以SOURCE格式导出,得到纯文本字符串 notebook_content = dbutils.notebook.export(notebook_path, format="SOURCE") # 打印或处理内容 print(notebook_content)
2. 转换为JSON格式
如果需要JSON结构,可将导出的字符串按单元格拆分后封装为JSON:
import json # Databricks Notebook用`# COMMAND ----------`作为单元格分隔符,拆分内容 cell_list = notebook_content.split("# COMMAND ----------") # 过滤空内容的无效单元格 cell_list = [cell.strip() for cell in cell_list if cell.strip()] # 封装为结构化JSON content_json = json.dumps({ "notebook_path": notebook_path, "total_cells": len(cell_list), "cells": cell_list }, indent=2) # 打印JSON结果 print(content_json)
注意事项
- 确保运行当前Notebook的用户拥有目标Notebook的读取权限
notebook_path必须是工作区中的完整路径(例如/Users/your_email@domain.com/notebook1)- 导出的
SOURCE格式会完整保留原Notebook的所有内容,包括%sql魔法命令、注释和空行
内容的提问来源于stack exchange,提问作者user25060582
相关产品推荐
相关产品推荐

