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

如何在Databricks Notebook中检测指定代码块并返回单元格编号?

在Databricks Notebook中搜索特定代码块并返回单元格编号

你可以通过Databricks Workspace API结合Python代码实现这个需求,核心思路是先获取当前运行Notebook的路径,再读取Notebook的完整内容,遍历所有单元格进行匹配检查。

实现步骤与代码

  1. 安装依赖(如果未安装):
    若未安装databricks-sdk,先运行以下命令:

    %pip install databricks-sdk
    
  2. 核心函数实现:

    from databricks.sdk import WorkspaceClient
    from databricks.sdk.errors import NotFound
    
    def search_notebook_cells(pattern_check):
        """
        在当前运行的Databricks Notebook中搜索符合条件的单元格
        :param pattern_check: 接收单个单元格内容的函数,返回True/False表示是否匹配
        :return: 符合条件的单元格编号(1-based)列表
        """
        # 获取当前Notebook路径
        notebook_path = dbutils.notebook.entry_point.getDbutils().notebook().getContext().notebookPath().get()
        
        # 初始化Workspace客户端
        w = WorkspaceClient()
        
        try:
            # 读取Notebook内容(格式为JSON)
            notebook = w.workspace.get(notebook_path, format="JUPYTER")
            notebook_json = notebook.as_dict()
            
            matched_cells = []
            # 遍历所有单元格,原始索引为0-based,返回时转为1-based
            for idx, cell in enumerate(notebook_json['cells']):
                # 单元格内容是列表,拼接成完整文本
                cell_content = ''.join(cell['source']).strip()
                if pattern_check(cell_content):
                    matched_cells.append(idx + 1)
            
            return matched_cells
        except NotFound:
            return ["未找到当前Notebook"]
    
  3. 示例调用(检测以%sql开头的单元格):
    自定义匹配规则后调用核心函数:

    def check_sql_cell(content):
        return content.startswith("%sql")
    
    # 查找所有以%sql开头的单元格
    sql_cells = search_notebook_cells(check_sql_cell)
    if sql_cells:
        print(f"找到符合条件的单元格编号:{sql_cells}")
    else:
        print("未找到符合条件的单元格")
    

注意事项

  • 权限要求:运行该函数的账号需要具备当前Notebook的读取权限,以及Workspace API的调用权限。
  • 单元格编号:函数返回的是1-based编号,与Notebook界面显示的单元格序号一致。
  • 匹配灵活性:你可以自定义pattern_check函数,实现任意匹配逻辑,比如查找特定代码片段、注释内容等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 13:25:31