如何通过C#调用API/SDK执行Azure Synapse Spark Notebook
关于C#调用接口执行Azure Synapse Spark Notebook的解决方案
可以通过C#调用相关接口执行Azure Synapse Spark Notebook,目前官方.NET SDK未直接封装触发Notebook运行的专用方法,可通过以下两种可行方案实现:
方案1:通过Synapse管道触发(推荐,可直接使用现有.NET SDK)
- 首先在Synapse工作区创建管道,添加「Spark Notebook」活动,关联目标Notebook,配置对应Spark池、运行参数等配置后发布管道
- 使用Azure.Analytics.Synapse.Artifacts .NET SDK的
PipelineClient类调用CreatePipelineRunAsync方法触发管道运行,即可间接执行关联的Notebook - 参考代码示例:
// 先安装对应NuGet包:Azure.Analytics.Synapse.Artifacts using Azure.Analytics.Synapse.Artifacts; using Azure.Identity; // 初始化管道客户端 var synapseEndpoint = new Uri("https://<替换为你的Synapse工作区名称>.dev.azuresynapse.net"); var azureCredential = new DefaultAzureCredential(); PipelineClient pipelineClient = new PipelineClient(synapseEndpoint, azureCredential); // 触发已发布的管道运行 var runResult = await pipelineClient.CreatePipelineRunAsync("<替换为你发布的管道名称>"); // 可通过runResult.Value.RunId后续查询管道及Notebook的运行状态
方案2:直接调用Synapse REST API触发
如果不想额外创建管道,可直接调用Synapse原生REST接口触发Notebook运行:
- 接口地址规则为
POST https://<替换为你的Synapse工作区名称>.dev.azuresynapse.net/notebooks/<替换为目标Notebook名称>/run?api-version=2020-12-01 - 在C#中通过
HttpClient发起请求即可,请求头需要携带Azure AD认证的Bearer令牌,请求体可传入Spark池配置、自定义运行参数等信息
补充说明
Spark批作业专用.NET SDK目前仅支持直接提交Spark批作业、流作业等任务,暂时不支持直接提交Notebook类型的作业,需要通过上述两种方式实现需求。
内容的提问来源于stack exchange,提问作者user2934433
相关产品推荐
相关产品推荐

