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

如何将Azure Synapse Notebook变量传递至管道复制数据任务?

Azure Synapse Notebook变量传递至Azure管道组件的实现方法

方法一:通过Notebook输出直接映射为管道变量

这是最直接的方式,利用Notebook的退出输出将变量传递给管道:

  1. 修改Notebook代码,在变量定义后添加退出输出语句:
    testvar = '6/26/2023'
    # 将变量以键值对JSON格式输出,方便管道解析
    mssparkutils.notebook.exit(f'{{"testvar": "{testvar}"}}')
    
  2. 在Azure管道的Notebook任务中,切换到输出变量标签:
    • 添加一个自定义变量(例如notebookTestVar)
    • 设置变量值为@json(activity('你的Notebook任务名称').output.exitValue).testvar
  3. 在复制数据任务中引用该变量:
    • 如需在SQL查询中使用,直接通过动态内容插入,示例:
      SELECT * FROM source_table WHERE date_column = '@{variables('notebookTestVar')}'
      
    • 如需绑定到数据集参数,直接选择对应的管道变量即可。

方法二:将变量写入存储后通过Lookup任务读取

适合需要多个任务共享变量的场景:

  1. 在Notebook中将变量值写入ADLS Gen2的文本文件:
    testvar = '6/26/2023'
    # 写入到指定存储路径,覆盖已有文件
    mssparkutils.fs.put('/your-storage-path/testvar.txt', testvar, overwrite=True)
    
  2. 在管道中添加Lookup任务:
    • 数据源选择刚才写入的文本文件,配置好连接
    • 设置查询模式为“读取整个文件内容”
  3. 将Lookup的输出转为管道变量:
    • 添加管道变量lookupTestVar,值设为@activity('你的Lookup任务名称').output.firstRow.Content
  4. 在复制数据任务中,通过@variables('lookupTestVar')引用该变量即可。

注意事项

  • 确保Notebook使用的Spark权限能访问存储(如果用方法二)
  • 动态内容引用变量时,注意SQL语句的字符串格式,日期类型可能需要额外转换(例如转为yyyy-MM-dd格式避免解析错误)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 21:14:57