我有一个databricks笔记本,里面有一条SQL语句,类似于下面的内容我需要这个笔记本电脑由powerautomate流运行,并返回笔记本电脑的输出。我按照here中提到的指令操作,它工作正常,作业在数据库中运行。但是,我无法将笔记本输出取回到流中。我必须把输出写在databricks notebook中才能获取它吗?任何帮助或链接将不胜感激。
ggazkfy81#
AFAIK我们无法使用SQL代码从数据块笔记本返回值。为此,我们需要在notebook中使用dbutils.notebook.exit()。
dbutils.notebook.exit()
因此,将SQL笔记本的最后一个单元格更改为python单元格并使用它。对于样品,我已经返回如下。x1c 0d1x的数据
%python dbutils.notebook.exit(spark.sql("select split('Rakesh Govindula Laddu Virat',' ') as value,'Hi laddu' as Greetings;").collect())
字符串你可以根据你的要求返回任何字符串。现在,使用逻辑应用程序HTTP post调用它。但是这个动作只会触发notebook的执行,而不会从notebook获取输出。对于Notebook的输出,我们需要使用下面的API(GET),在逻辑应用中使用执行作业的run id。
https://adb-Xxxxxxxxxxxxxxxxx.azuredatabricks.net/api/2.1/jobs/runs/get-output?run_id=<job run id>
型在逻辑应用的HTTP post之后,使用另一个HTTP action with GET并提供我们从HTTP post action中获得的run_id。
HTTP post
run_id
https://adb-Xxxxxxxxxxxxxxxxx.azuredatabricks.net/api/2.1/jobs/runs/get-output?run_id=@{body('HTTP')?['run_id']}
型
的在这里,我使用Delay来等待作业完成,并根据作业运行执行情况给出1分钟的时间。根据作业运行执行时间更改时间。(或者)您可以使用**@sharepointed在此博客中提到的Do Until**循环方法
Delay
执行:
的
输出:
1条答案
按热度按时间ggazkfy81#
AFAIK我们无法使用SQL代码从数据块笔记本返回值。为此,我们需要在notebook中使用
dbutils.notebook.exit()
。因此,将SQL笔记本的最后一个单元格更改为python单元格并使用它。
对于样品,我已经返回如下。
x1c 0d1x的数据
字符串
你可以根据你的要求返回任何字符串。现在,使用逻辑应用程序HTTP post调用它。但是这个动作只会触发notebook的执行,而不会从notebook获取输出。
对于Notebook的输出,我们需要使用下面的API(GET),在逻辑应用中使用执行作业的run id。
型
在逻辑应用的HTTP post之后,使用另一个HTTP action with GET并提供我们从
HTTP post
action中获得的run_id
。型
的
在这里,我使用
Delay
来等待作业完成,并根据作业运行执行情况给出1分钟的时间。根据作业运行执行时间更改时间。(或者)您可以使用**@sharepointed在此博客中提到的Do Until**循环方法执行:
的
输出:
的