如何在Azure Synapse Notebook中使用自定义*.py文件(无需转为笔记本)
在Azure Synapse Notebook中使用自定义*.py文件的解决方案
以下是几种无需转换格式即可直接使用自定义Python脚本的方法:
方法1:使用Workspace Packages打包上传
将自定义脚本打包成Python wheel包,通过Synapse的Workspace Packages功能统一管理,所有Notebook均可直接安装调用:
- 本地创建
setup.py配置文件,示例:from setuptools import setup setup( name="my_utils", version="0.1", packages=[""], py_modules=["util"] ) - 执行命令生成wheel包:
python setup.py bdist_wheel - 在Synapse Studio的管理 > Workspace Packages中上传生成的
.whl文件 - 在Notebook中安装并导入:
%pip install --upgrade my_utils import util
方法2:将脚本存储到ADLS Gen2并添加到Python路径
直接将.py文件写入Synapse关联的ADLS Gen2存储,再将存储路径添加到Python的sys.path即可导入:
- 写入脚本到ADLS(可通过本地文件上传或Notebook代码写入):
# 示例:直接在Notebook中写入util.py内容到ADLS路径 with open("/synfs/<你的工作区ID>/<存储容器名>/scripts/util.py", "w") as f: f.write(""" def calculate_sum(a, b): return a + b """) - 添加路径到Python环境并导入:
import sys # 替换为实际的ADLS路径对应的synfs路径 sys.path.append("/synfs/<你的工作区ID>/<存储容器名>/scripts/") import util # 测试调用 print(util.calculate_sum(2, 3))
方法3:通过Spark池初始化脚本全局部署
如果多个Notebook都需要使用该脚本,可配置Spark池的初始化脚本,将脚本部署到所有Spark节点的Python环境中:
- 将
util.py上传到ADLS的某个路径(如abfss://<容器名>@<存储账户>.dfs.core.windows.net/init_scripts/util.py) - 创建bash初始化脚本(如
install_util.sh),内容如下:# 将py文件复制到Spark节点的Python包目录 cp abfss://<容器名>@<存储账户>.dfs.core.windows.net/init_scripts/util.py /usr/lib/python3.8/site-packages/ - 在Synapse Studio的管理 > Apache Spark池中,选择目标池进入配置,添加初始化脚本的ADLS路径
- 重启Spark池后,所有使用该池的Notebook均可直接导入:
import util
内容的提问来源于stack exchange,提问作者R. Maier
相关产品推荐
相关产品推荐

