升级至Databricks 14.x/Spark 3.5.0后导出MongoDB遇SparkException
问题排查与解决
核心原因
java.lang.NoSuchMethodError 本质是MongoDB Spark Connector版本与Spark 3.5.0/Databricks 14.x不兼容。Spark 3.5.x对RowEncoder.apply的方法签名做了调整,旧版本的连接器仍在调用过时的方法签名,导致JVM找不到对应方法。
解决方案
- 升级MongoDB Spark Connector到适配版本:
针对Spark 3.5.x/Databricks 14.x,必须使用MongoDB Spark Connector 10.0.x及以上版本(该版本专门适配Spark 3.5)。若之前使用9.x或更早版本,需立即升级。 - 确认Databricks集群依赖配置:
在Databricks集群的「库」管理页面,添加或更新MongoDB Spark Connector,选择与集群Scala版本匹配的包(例如Scala 2.12对应spark-mongodb-connector_2.12:10.0.3),同时彻底移除旧版本的连接器依赖,避免冲突。 - 验证代码:
升级连接器后,原有写入代码无需修改,保持原逻辑即可:my_dataframe.write.format("mongodb") \ .option("connection.uri", uri) \ .option("database", db_name) \ .option("collection", target_collection) \ .mode("overwrite") \ .save()
版本对应关系
Databricks与MongoDB连接器的版本匹配需严格对应:
- Databricks 13.x(Spark 3.4.x)→ MongoDB Connector 9.x
- Databricks 14.x(Spark 3.5.x)→ MongoDB Connector 10.x
内容的提问来源于stack exchange,提问作者Stefan Papp
相关产品推荐
相关产品推荐

