首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >突触笔记本参考-从笔记本调用Synapse管道

突触笔记本参考-从笔记本调用Synapse管道
EN

Stack Overflow用户
提问于 2022-07-22 11:01:57
回答 1查看 311关注 0票数 0

我正试着从突触笔记本上运行一个突触管道,有什么办法吗?

我的synapse管道有参数,如果可以从笔记本上运行,那么如何通过params?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-02 03:42:17

正如Wbob所建议的那样,我也建议不要这样做(从突触笔记本调用synapse管道),因为火花池。

但是,如果您想尝试一下,可以使用REST以外的其他方法。

在这个过程中,我向synapse管道添加了一个存储事件触发器,它通过使用synapse笔记本代码将写入存储触发。

为此,您需要一个存储帐户和一个空容器。

首先,在synapse中为ADLS Gen2创建一个Gen2链接服务,并为synapse管道创建一个存储事件触发器。

在Synapse笔记本中,向ADLS写入一个json文件,这将触发管道。您可以使用相同的json从synapse笔记本中传递参数。

带有示例参数的同步笔记本中的代码:

代码语言:javascript
复制
from pyspark.sql.types import *
myjson=[{"Name":"Rakesh","Age":22,"Marks":90}]
schema2=StructType([StructField('Name',StringType(),True),StructField('Age',IntegerType(),True),StructField('Marks',IntegerType(),True)])
df = spark.createDataFrame(data=myjson,schema=schema2)
df.show(truncate=False) 

df2=df.toPandas()
df2.reset_index().to_json('abfss://input/myjson.json', storage_options = {'linked_service' : 'AzureDataLakeStorage1'},orient='records')

这里,input是我的容器,AzureDataLakeStorage1是我的链接服务。orient='records'给出了带有参数的索引。

这将在ADLS容器中创建myjson.json文件,如下所示。

上面的文件触发Synapse管道。若要使用我们传递的参数,请使用管道中的查找活动。

查找活动:

在查找中,不要在数据集中提供任何数据集值。将通配符路径文件设为*.json

查找结果如下:

您可以像这样使用表达式@activity('Lookup1').output.value[0].Age@activity('Lookup1').output.value[0].Name来访问这些参数,并在synapse管道中使用它们自己的数据类型。

例如,set变量活动中的

输出:

由于变量只支持string、Booleans和数组,因此我将其转换为string以显示输出。您可以在任何地方使用这些参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73079287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档