gpt4 book ai didi

azure - 如何将 Sql 查询结果从 Azure Synapse 笔记本传递到 Synapse Pipeline 中的下一个事件?

转载 作者:行者123 更新时间:2023-12-03 00:53:50 34 4
gpt4 key购买 nike

我在 Synapse 工作区中有一个主管道,其中有 2 个事件:

第一 - 笔记本事件

第二 - If 条件事件

对于第一个(Synapse 笔记本、spark 池、pyspark),我有一个如下所示的 SQL 单元:

它有一个使用联接的简单查询:

%%sql
SELECT A.name FROM A
LEFT JOIN B ON A.id = B.id

这将返回一些行给我(< 50 行)

现在我想在 Synapse Pipeline 的“If Condition”事件中访问这个少于 50 行的结果集,

我该如何执行此操作?

根据docs ,我应该能够使用以下内容:

@activity(‘Notebook1’).output.status.Output.result.exitValue

但是我在突触笔记本输出中获得的 exitValue 是 null。那么如何在“If Condition”中访问这个结果集呢?

最佳答案

  • 您必须使用 mssparkutils.notebook.exit 从笔记本返回值,才能使用 @activity('Notebook1').output.status.Output 从管道访问它.result.exitValue .

  • 您可以使用 spark.sql 代替 SQL 单元,并使用 df = Spark.sql(Query) 将结果存储在数据帧中。

  • 您可以选择将整个数据帧数据返回到管道,也可以使用 dataframe.count() 仅返回记录数(如果您想验证记录数)。

mssparkutils.notebook.exit(str(df.count()))  #where df is the dataframe 
  • 如果您希望将整个数据作为对象数组返回,以便数据可用于迭代以及管道中的其他操作,您可以使用以下代码:
x = df.toPandas()
json = x.to_json(orient = 'records' )
mssparkutils.notebook.exit(json)

enter image description here

  • 当我使用笔记本事件运行管道并将其存储在设置变量中以显示输出时,它将给出以下结果:
@activity('Notebook1').output.status.Output.result.exitValue

enter image description here

  • 您可以使用 @json 方法将此对象数组从字符串(因为它以字符串形式返回)转换为实际对象。

关于azure - 如何将 Sql 查询结果从 Azure Synapse 笔记本传递到 Synapse Pipeline 中的下一个事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74768065/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com