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

如何编程将执行后的Databricks笔记本导出为带输出的HTML文件

Databricks 笔记本单元格内自动导出带运行结果HTML的实现方法

目前没有和Jupyter nbconvert完全对等的本地一键转换命令,最稳定、导出效果和手动操作完全一致的方案是直接调用Databricks官方工作区API完成导出,代码直接放在笔记本最后一个单元格即可运行,不需要手动点菜单操作。

具体实现代码(Python版本)

import os
import requests

# 自动获取当前运行环境的上下文参数,无需手动硬编码配置
context = dbutils.notebook.entry_point.getDbutils().notebook().getContext()
api_host = context.apiUrl().get()
api_token = context.apiToken().get()
current_notebook_path = context.notebookPath().get()

# 调用官方导出接口,include_outputs参数必须设为True才会保留所有单元格运行结果
resp = requests.get(
    url=f"{api_host}/api/2.0/workspace/export",
    headers={"Authorization": f"Bearer {api_token}"},
    params={
        "path": current_notebook_path,
        "format": "HTML",
        "direct_download": True,
        "include_outputs": True
    }
)
resp.raise_for_status()

# 自定义HTML保存路径,示例存到DBFS的FileStore目录,可替换为你自己的存储路径
save_local_path = "/dbfs/FileStore/notebook_export/full_run_result.html"
with open(save_local_path, "wb") as f:
    f.write(resp.content)

print(f"导出完成,文件已保存至: {save_local_path}")

注意事项

  • 代码必须放在笔记本的最后一个单元格,才会等前面所有单元格执行完成、所有输出都生成后再触发导出,拿到的是完整的运行结果
  • include_outputs=True是必传参数,漏传的话导出的HTML只有代码内容,不会带任何运行输出
  • 运行笔记本的集群身份、关联的服务账号需要拥有当前笔记本路径的读取权限,否则API会返回权限报错
  • 如果集群预装了databricks-cli,也可以直接用cli命令简化代码,本质和调用API逻辑一致:
import os
context = dbutils.notebook.entry_point.getDbutils().notebook().getContext()
notebook_path = context.notebookPath().get()
save_path = "/dbfs/FileStore/notebook_export/full_run_result.html"
os.system(f"databricks workspace export {notebook_path} {save_path} --format HTML --include-outputs")

不要尝试直接把笔记本转成ipynb再用nbconvert本地转HTML,Databricks的单元格输出、内置图表、DataFrame预览、SQL单元格渲染都有专属逻辑,本地转换会丢失大量样式和内容,只有官方导出接口能保证和手动点「File >> Export >> HTML」的效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 00:21:54