如何在Azure Synapse Notebook中安装MongoDB Spark连接器?
Azure Synapse 环境安装 MongoDB Spark Connector 操作步骤
报错Failed to find data source: mongodb的核心原因是当前Spark会话未加载MongoDB数据源依赖,不需要手动调用./bin/pyspark启动脚本,根据使用场景选以下任意一种方式配置即可:
方法1:Notebook 内临时配置(单Notebook生效,最快可用)
在Notebook的第一个代码单元格写入Spark配置,强制会话启动时拉取对应依赖,配置代码必须放在所有MongoDB读写逻辑之前运行:
%%configure -f { "conf": { "spark.jars.packages": "org.mongodb.spark:mongo-spark-connector_2.12:10.2.1" } }
- 注意包名后缀
_2.12是Scala版本号,需要和你当前Synapse Spark池内置的Scala版本匹配,目前Azure Synapse所有Spark 3.x版本均使用Scala 2.12,不要选错后缀。 - 单元格运行完成后,会话会自动从Maven拉取依赖包,后续直接运行你的读取代码即可。
方法2:Spark池全局配置(池下所有作业/Notebook生效,一劳永逸)
如果需要让该Spark池上运行的所有任务都默认支持MongoDB数据源,可以直接把依赖配置到Spark池层面:
- 打开Synapse Studio,进入「管理」板块找到「Apache Spark池」列表
- 选中你正在使用的Spark池,进入配置页的「包」选项卡
- 在Maven包配置项中添加坐标:
org.mongodb.spark:mongo-spark-connector_2.12:10.2.1 - 保存配置后等待Spark池更新完成,后续新启动的Spark会话会自动加载Connector,不需要每个Notebook单独配置。
方法3:离线Jar包上传(无公网访问场景适用)
如果你的Synapse工作区限制公网访问,无法直接拉取Maven包:
- 提前下载对应版本的MongoDB Spark Connector Jar包,以及其强制依赖包(包括mongodb-driver-sync、bson、mongodb-driver-core)
- 将所有Jar包上传到Synapse工作区关联的ADLS Gen2存储账户
- 可以选择在Spark池的「工作区包」配置中上传上述Jar,或者在Notebook的
%%configure配置中通过spark.jars参数指定Jar的存储路径即可。
注意:使用Linked Service(链接服务)连接MongoDB时,不需要额外在代码中配置连接串、账号密码,只要确认链接服务本身配置正确、Connector版本和Spark版本匹配,原有读取代码即可正常运行。
内容的提问来源于stack exchange,提问作者Boring person
相关产品推荐
相关产品推荐

