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

如何从Databricks Python节点向ADF管道返回脚本输出值

ADF中Databricks Python节点返回值的轻量实现方案

Databricks Python节点是直接向集群提交Python脚本运行,没有Notebook的交互上下文,因此dbutils.notebook.exit()方法在这个节点类型下无法生效,也不存在和Notebook节点完全等价的原生返回接口。但完全不需要走写文件/写表再读取的冗余流程,直接捕获节点标准输出就能拿到你print的内容,是目前最直接的实现方式。

操作步骤

  • 脚本侧处理:把你需要返回给ADF的值,在Python代码末尾单独用print()输出。如果脚本本身有其他运行日志,建议给返回值加固定标识避免和日志混淆,示例代码:
# 此处为你的业务处理逻辑
value_to_return = {"key": "test_value", "id": 123}
# 最后打印带固定标识的返回值,不要混其他无关打印内容
print(f"ADF_RETURN_RESULT::{value_to_return}")
  • ADF侧取值:在Databricks Python节点后面加一个「设置变量」活动,依赖配置为Python节点运行成功,变量值直接读取Python节点输出的stdOut字段(这个字段是ADF运行Python活动时默认捕获的脚本标准输出,也就是所有print的内容),表达式示例:
@split(activity('你的Databricks Python节点自定义名称').output.stdOut, 'ADF_RETURN_RESULT::')[1]
  • 后续调用:你需要给Web活动传值的时候,直接引用前面设置的管道变量即可,不需要额外对接存储、数据库做中转。

注意事项

如果你的脚本运行时会抛出异常,错误栈信息会存在节点输出的stdErr字段里,不会混到stdOut中,只要你给返回值加了固定分隔前缀,基本不会出现取值错乱的问题。
这个方案没有额外的存储读写开销,也不需要给Databricks集群配置额外的存储、数据库权限,比中转写文件/表的方案效率高很多。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 14:54:19