Synapse Notebook如何接收Pipeline变量?新手技术求助
处理Synapse Notebook接收Pipeline变量的实现方案
一、无需额外安装包
Synapse本身内置了Pipeline变量传递到Notebook的能力,不需要额外安装任何包,直接用内置语法即可实现。
二、两种核心实现方式
方式1:使用Synapse魔法命令读取
通过%synapse getVariable命令直接获取Pipeline传递的变量,代码示例:
# 读取字符串类型变量 api_url = %synapse getVariable "API_URL" # 读取复杂类型(如数组、字典),需转成对应格式 import json api_headers = json.loads(%synapse getVariable "API_HEADERS")
注意:命令里的变量名要和Pipeline中定义的名称完全一致,必须加引号包裹。
方式2:通过Spark配置读取
Pipeline传递的变量会自动注入到Spark配置中,前缀为spark.yarn.appConfigurationProperties.,可以通过spark.conf.get()获取:
# 读取字符串变量 api_key = spark.conf.get("spark.yarn.appConfigurationProperties.API_KEY") # 复杂类型转JSON处理 import json request_params = json.loads(spark.conf.get("spark.yarn.appConfigurationProperties.REQUEST_PARAMS"))
三、Pipeline侧的配置步骤
- 在Pipeline的Notebook活动中,切换到参数标签页
- 点击「添加参数」,输入参数名称(要和Notebook里读取的变量名完全匹配)
- 参数值选择「管道变量」,从下拉列表中选中你要传递的Pipeline变量
- 保存配置后运行Pipeline,Notebook即可获取到对应变量值
四、调试建议
- 拿到变量后先打印确认:
print(api_url) - 复杂变量打印前转成格式化字符串:
print(json.dumps(api_headers, indent=2))
内容的提问来源于stack exchange,提问作者MahiC98
相关产品推荐
相关产品推荐

