You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySpark连接MongoDB执行查询时出现NoSuchMethodError错误求助

问题排查与解决方案

错误根源

你遇到的java.lang.NoSuchMethodError本质是依赖版本不匹配,核心问题有两个:

  1. MongoDB Spark Connector的Scala版本与环境中的Scala版本不兼容
  2. 额外添加的低版本Scala库引发了依赖冲突

你的环境使用Scala 2.12.15,但启动命令里指定的Connector是_2.13版本(org.mongodb.spark:mongo-spark-connector_2.13:10.1.1);同时手动添加的scala-library-2.10.0-M3.jar版本远低于Spark和Scala环境要求,直接导致Spark核心类的方法找不到。

解决步骤

1. 替换匹配版本的MongoDB Spark Connector

将启动命令中的Connector改为对应Scala 2.12的版本,命令如下:

pyspark --packages org.mongodb.spark:mongo-spark-connector_2.12:10.1.1

注:MongoDB Spark Connector的版本命名规则是_Scala版本号,必须与你的Scala环境版本严格对应。

2. 移除冲突的低版本依赖

删除启动项中的scala-library-2.10.0-M3.jar,Spark本身已经集成了匹配版本的Scala库,手动添加低版本库会引发严重的依赖冲突。

3. 移除不必要的Spark Catalyst依赖

spark-catalyst_2.12-3.3.2.jar是Spark自带的核心组件,不需要手动添加到启动项中,重复引入可能导致版本不一致问题,建议从启动参数中移除。

验证操作

修改启动命令后,重新连接MongoDB并执行数据查询:

df = spark.read.format("mongodb").option("connection.uri", "mongodb://127.0.0.1/test.testData").load()
df.first()
df.show()

此时应该能正常读取并显示数据。

内容的提问来源于stack exchange,提问作者Jack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 03:07:14