如何正确将MongoDB Spark连接器JAR添加到$SPARK_HOME/jars?
问题解决:手动添加MongoDB Spark连接器后出现NoClassDefFoundError
你遇到的问题根源是只下载了MongoDB Spark连接器本身,缺少它依赖的MongoDB Java驱动包。spark.jars.packages参数会自动处理所有传递依赖,但手动下载JAR时必须把所有依赖都补齐。
解决步骤:
- 下载对应版本的MongoDB Java驱动包:
对于mongo-spark-connector_2.11:2.3.5,匹配的MongoDB Java驱动版本是3.8.2,执行以下命令下载到SPARK_HOME的jars目录:cd /de/spark-2.4.6-bin-hadoop2.7/jars curl https://repo1.maven.org/maven2/org/mongodb/mongo-java-driver/3.8.2/mongo-java-driver-3.8.2.jar --output mongo-java-driver-3.8.2.jar - 重启Jupyter Notebook内核:Spark启动时会一次性加载jars目录下的所有文件,新增JAR后必须重启内核才能让Spark识别到。
额外说明:
如果后续仍出现类似的NoClassDefFoundError,可以查看mongo-spark-connector_2.11:2.3.5的依赖树,把所有缺失的依赖JAR都下载到SPARK_HOME/jars目录中。
内容的提问来源于stack exchange,提问作者Astora
相关产品推荐
相关产品推荐

