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

Azure Data Factory中传递Databricks Notebook路径报错求助

解决Azure Data Factory中动态内容传递Notebook路径的报错问题

我来帮你排查这个问题,你遇到的@string(activity('Lookup1').output)报错,核心原因大概率是错误地将Lookup活动的整个输出对象转成了字符串,而非提取其中的Notebook路径具体值,导致传递的内容不符合路径格式要求。下面是具体的排查和解决步骤:

  • 第一步:确认Lookup活动的实际输出结构
    Lookup活动的输出默认是一个包含value数组的JSON对象,比如类似这样的结构:

    {
      "value": [
        {
          "NotebookPath": "/Workspace/MyProject/MyNotebook"
        }
      ],
      "count": 1
    }
    

    直接用@string(activity('Lookup1').output)会把整个JSON对象转成字符串,得到的是类似"{\"value\":[{\"NotebookPath\":\"/Workspace/MyProject/MyNotebook\"}],\"count\":1}"的内容,这显然不是合法的Notebook路径。你可以在ADF的Monitor面板中查看Lookup1活动的输出详情,确认路径值所在的层级和列名。

  • 第二步:提取具体的路径值而非整个输出
    如果Lookup查询返回的是单条记录的路径,直接用表达式提取对应列的值即可,不需要用@string()包裹:

    @activity('Lookup1').output.value[0].你的路径列名
    

    比如你的路径列叫NotebookPath,那表达式就是:

    @activity('Lookup1').output.value[0].NotebookPath
    

    这样得到的就是纯净的路径字符串,符合Notebook的路径格式要求。

  • 第三步:验证动态内容的输出结果
    在ADF的动态内容编辑面板中,点击测试按钮,输入你写的表达式,查看返回的结果是否是预期的路径。如果测试结果是JSON格式的字符串,说明你还是没正确提取到路径值,需要调整表达式。

  • 第四步:处理特殊字符场景
    如果路径中包含空格、特殊符号等,ADF会自动处理转义,不需要手动添加转义符。如果需要拼接路径,使用@concat()函数来组合部分路径,比如:

    @concat('/Workspace/Common/', activity('Lookup1').output.value[0].NotebookPath)
    

举个实际的例子:假设Lookup1查询返回的单条记录里,NotebookPath列的值是/Team/ETL/ProcessData,那么正确的动态内容表达式应该是@activity('Lookup1').output.value[0].NotebookPath,传递给Notebook活动后就能正常识别路径了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:53:44