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

在Azure Synapse中如何导入Notebook并复用其中变量

在Azure Synapse中复用Notebook变量的有效方案

直接将Synapse Notebook作为Python包导入不可行,因为Notebook的执行环境是交互式的,且不在Python默认的模块搜索路径中。以下是几种可靠的实现方式:

方法1:使用%run魔术命令(推荐)

这是Synapse中复用Notebook代码和变量最直接的方式,%run会在当前Notebook的会话中完整执行目标Notebook的所有代码,执行后即可直接使用目标Notebook中定义的变量。

用法示例:

假设Notebook1的内容如下:

# Notebook1 中的代码
user_name = "Tarik"
project_config = {
    "data_path": "/Workspace/MyData",
    "batch_size": 1000
}

在Notebook2中执行以下命令:

# 执行Notebook1,路径根据实际位置调整
%run /Workspace/Notebooks/Notebook1

# 直接使用Notebook1中的变量
print(f"Hello {user_name}")
print(f"Config: {project_config}")

路径说明:

  • 如果两个Notebook在同一文件夹下,直接写%run Notebook1即可
  • 完整路径格式为%run /Workspace/[文件夹路径]/Notebook1

方法2:序列化变量到共享存储

如果需要跨会话复用变量(比如Notebook1和Notebook2在不同时间执行),可以将变量序列化为文件存储到Synapse的共享位置(如Workspace的Shared文件夹、ADLS Gen2),再在Notebook2中读取。

用法示例:

Notebook1中保存变量:

import pickle

# 定义需要共享的变量
model_params = {"learning_rate": 0.01, "epochs": 50}

# 保存到Workspace的Shared文件夹(需确保有读写权限)
with open("/dbfs/Workspace/Shared/model_params.pkl", "wb") as f:
    pickle.dump(model_params, f)

Notebook2中读取变量:

import pickle

# 读取序列化的变量
with open("/dbfs/Workspace/Shared/model_params.pkl", "rb") as f:
    model_params = pickle.load(f)

print(f"Loaded params: {model_params}")

方法3:使用环境变量(仅适用于字符串类型)

如果变量是字符串类型,可以将其设置为环境变量,在Notebook2中读取。注意:此方法仅适用于同一Spark池的会话,且变量类型受限。

用法示例:

Notebook1中设置环境变量:

import os

# 设置环境变量
os.environ['APP_VERSION'] = "v1.2.0"

Notebook2中读取环境变量:

import os

# 获取环境变量
app_version = os.environ.get('APP_VERSION')
print(f"App version: {app_version}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 14:35:50