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

如何在Power Automate中获取Databricks SQL Notebook执行结果?

解决Databricks Notebook输出无法返回至Power Automate的问题

要让Power Automate获取到Databricks Notebook的输出,必须在Notebook中对输出做特殊处理,同时配合Power Automate的对应配置,具体步骤如下:

Notebook端处理

1. 用dbutils.notebook.exit()返回结构化输出

这是最直接的方式,适合返回小体量的结果(限制约1MB)。需要将SQL查询结果转换为字符串格式(推荐JSON,方便Power Automate解析):

# 执行SQL查询
query_result = spark.sql("SELECT * FROM your_target_table LIMIT 20")

# 将Spark DataFrame转换为JSON字符串(两种方式可选)
# 方式1:直接用Spark原生API转JSON数组
json_output = query_result.toJSON().collect()
# 方式2:转成Pandas DataFrame后生成更易读的JSON
import pandas as pd
json_output = query_result.toPandas().to_json(orient="records")

# 用dbutils返回结果,这会将内容写入任务的运行输出中
dbutils.notebook.exit(json_output)

2. 大结果集的处理方案

如果SQL结果数据量超过dbutils.notebook.exit()的限制,需要将结果写入外部存储(如ADLS Gen2、Azure Blob Storage),再返回存储路径:

# 将查询结果写入ADLS路径
query_result.write.mode("overwrite").json("abfss://container@storageaccount.dfs.core.windows.net/databricks-output/result.json")

# 返回存储路径给Power Automate
dbutils.notebook.exit("abfss://container@storageaccount.dfs.core.windows.net/databricks-output/result.json")

Power Automate端配置

  1. 触发Databricks任务后,添加获取作业运行输出的动作(对应Databricks Connector的Get Job Run Output)。
  2. 从返回的响应中提取output字段的内容(这就是dbutils.notebook.exit()返回的字符串)。
  3. 如果返回的是JSON字符串,添加解析JSON动作,使用输出的JSON结构生成Schema,即可直接提取所需字段。
  4. 如果返回的是存储路径,使用对应的存储连接器(如Azure Blob Storage)读取文件内容。

注意事项

  • dbutils.notebook.exit()会立即终止Notebook运行,所以要确保放在所有逻辑的最后。
  • 检查Databricks作业的权限:Power Automate使用的服务主体必须拥有读取作业运行结果的权限。
  • 大结果集写入存储时,要确保存储账户的权限配置正确,Power Automate能访问该路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 18:27:43