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

如何在Azure Databricks笔记本中动态获取当前命令编号?

在Azure Databricks笔记本里获取当前命令编号的办法

先说结论:没有现成的dbutils命令能直接拿到单元格左侧显示的命令编号(比如你示例里的数字1)。不过有两种间接方式可以实现需求:

方式1:通过笔记本元数据+Workspace API解析

这个方法需要你有调用Databricks Workspace API的权限,步骤如下:

  • 先获取当前笔记本的路径:
    notebook_path = dbutils.notebook.entry_point.getDbutils().notebook().getContext().notebookPath().get()
    
  • 调用Workspace API读取笔记本源码内容(需要生成认证令牌):
    import requests
    
    # 获取API令牌与工作区地址
    token = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiToken().get()
    workspace_host = dbutils.notebook.entry_point.getDbutils().notebook().getContext().browserHostName().get()
    
    # 导出笔记本源码(SOURCE格式适合解析,针对Python笔记本)
    resp = requests.get(
        f"https://{workspace_host}/api/2.0/workspace/export",
        headers={"Authorization": f"Bearer {token}"},
        params={"path": notebook_path, "format": "SOURCE"}
    )
    
  • 解析返回的源码内容:按单元格分隔符# COMMAND ----------分割内容,找到当前单元格对应的位置,索引值加1就是命令编号(编号从1开始)。
    注:不同语言的笔记本可能使用不同的单元格分隔符,需要根据实际情况调整。

方式2:手动维护编号(简单易操作)

如果笔记本规模不大,直接在每个单元格开头手动定义编号变量是最省事的方案:

command_num = 1
print(command_num)

这种方式不需要额外权限或复杂逻辑,唯一的缺点是需要手动更新编号。

补充说明

单元格左侧的命令编号本质是笔记本内单元格的位置序号(或执行顺序),Databricks官方并未提供直接获取该编号的API,因此上述方法均为间接实现方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 08:33:32