Databricks中使用writeStreams报java.lang.NoClassDefFoundError问题求助
解决Databricks中Mongo Spark Connector的NoClassDefFoundError问题
问题根因
你遇到的java.lang.NoClassDefFoundError: Could not initialize class com.mongodb.spark.sql.connector.read.MongoScanBuilder错误,核心是Scala版本不匹配:
- 你的Databricks集群用的是Scala 2.12,但安装的Mongo Spark Connector是针对Scala 2.13的(库名里的
_2.13后缀),导致连接器的类无法被正确加载。 - 补充:Connector版本10.2.0和Spark 3.3.2的版本是兼容的,不用改这个,只需要修正Scala对应的版本。
解决步骤
- 卸载当前不匹配的库:
org.mongodb.spark:mongo-spark-connector_2.13:10.2.0 - 安装对应Scala 2.12版本的连接器:
org.mongodb.spark:mongo-spark-connector_2.12:10.2.0 - 重启Databricks集群,确保新库生效后再运行你的流处理代码
代码验证
你的流处理代码本身没有问题:
query.writeStream.outputMode("append").format("console").trigger(continuous="1 second").start()
只要依赖正确,就能正常执行。
内容的提问来源于stack exchange,提问作者Ankit
相关产品推荐
相关产品推荐

