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

Synapse中如何为管道内所有Notebook共享一个Spark会话?

Azure Synapse管道中复用Spark会话的可行思路
  • 交互式会话复用(管道参数传递)
    在管道中,先通过第一个Notebook启动Spark会话,获取会话ID(可通过Notebook输出或Synapse系统变量提取)。后续所有Notebook活动配置为“附加到现有会话”,将该会话ID作为参数传入,实现复用。需确保所有Notebook使用同一个Spark池、同一执行身份,且会话未因空闲超时被回收。

  • 调整Spark池会话持久化配置
    针对目标Spark池,修改核心参数:

    • 关闭动态分配:设置spark.dynamicAllocation.enabled=false,避免会话因资源释放被销毁
    • 延长空闲超时:在Spark池的“会话超时”设置中,将空闲时长调整为覆盖整个管道执行周期的时间
      第一个Notebook启动的会话会保持活跃,后续Notebook在同一池执行时自动复用该会话。
  • Notebook嵌套调用(单会话承载多逻辑)
    用一个主Notebook启动会话,通过%run ./子Notebook路径命令依次调用其他Notebook。所有子Notebook会运行在主Notebook的同一个Spark会话中,这是无需额外配置的直接方案。

  • REST API预创建会话
    使用Synapse Spark REST API提前创建指定配置的Spark会话,获取会话ID后,在管道的每个Notebook活动中指定该ID作为会话标识。管道可通过Web活动调用API创建会话,将ID存入管道变量,后续Notebook活动引用该变量完成会话附加。

注意限制

  • 复用会话仅限同一Spark池、同一执行身份
  • 长时间保持会话会持续占用Spark资源,需平衡成本与需求
  • 若会话意外终止,后续依赖该会话的Notebook活动会失败,需添加重试或容错逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 22:36:06