Azure Synapse Spark池:如何快速安装存储中的.whl文件?
解决Azure Synapse中快速关联ADLS Gen2的whl包到Spark池的问题
我已将.whl文件上传至与Azure Synapse Analytics关联的ADLS Gen2存储路径:
/mySynapseLinkedStorage/synapse/workspaces/myWorkSpace/sparkpools/mySparkPool/libraries/python/my_etl-0.0.1-py3-none-any.whl
尝试过两种方法关联到Spark池,但速度过慢:
- 方法1:通过Azure门户手动添加至工作区包再关联到Spark池,耗时约30分钟
- 方法2:通过Azure CLI上传包到工作区再关联,耗时约20分钟
更快的解决方案
1. 会话级即时加载(最快,适合临时测试)
直接在Synapse笔记本中用%pip命令从ADLS路径安装包,无需全局部署:
%pip install abfss://mySynapseLinkedStorage/synapse/workspaces/myWorkSpace/sparkpools/mySparkPool/libraries/python/my_etl-0.0.1-py3-none-any.whl
执行完成后重启笔记本会话,即可直接import使用该库。此方法仅对当前会话生效,不会影响整个Spark池,耗时仅几秒到几分钟。
2. Spark池全局快速配置(长期生效,部署更快)
如果需要所有使用该Spark池的会话都自动加载库,可直接关联ADLS中的包路径,省去上传到工作区的步骤:
- 登录Azure门户,进入目标Synapse工作区的Spark池页面
- 切换到库标签页,点击添加自定义库
- 选择从存储账户添加,找到你已上传的whl文件的ADLS路径(格式为
abfss://mySynapseLinkedStorage/...) - 保存配置,Spark池会快速完成依赖更新,一般几分钟内即可生效
为什么之前的方法慢?
你之前的两种方法都需要先将包上传到Synapse工作区的内部存储,再同步到Spark池,多了一次文件传输和同步的环节。直接使用ADLS中已存在的包路径,省去了上传步骤,大幅缩短了部署时间。
内容的提问来源于stack exchange,提问作者Sanket Kelkar
相关产品推荐
相关产品推荐

