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

Azure Databricks批量读取MongoDB时出现Py4JJavaError求助

问题解决:Spark 3.5+ 搭配 MongoDB Connector 出现 NoSuchMethodError

错误原因

你遇到的java.lang.NoSuchMethodError本质是Spark版本与MongoDB Spark Connector版本不兼容。MongoDB官方的Connector版本和Spark有严格的对应关系:

  • Connector 10.4.x 仅支持 Spark 3.4.x
  • 你的集群用的是 Spark 3.5.0+,版本不匹配导致Connector调用了Spark 3.5中已移除/变更的方法ExpressionEncoder.resolveAndBind。

解决步骤

  1. 更换兼容的Connector版本
    将Maven依赖替换为支持Spark 3.5的版本,目前适配的版本是org.mongodb.spark:mongo-spark-connector_2.12:10.5.0(或更高的10.x版本,需匹配官方版本对应规则)。

  2. 重新部署依赖并重启集群

    • 在Databricks集群的依赖配置中移除旧的Connector包,添加新的版本。
    • 重启集群确保依赖生效。
  3. 验证读取代码
    确认你的MongoDB读取配置参数正确,示例代码如下:

    spark.read.format("mongodb")\
        .option("uri", "mongodb://<host>:<port>/<db>.<collection>")\
        .option("spark.mongodb.input.database", "your_db")\
        .option("spark.mongodb.input.collection", "your_collection")\
        .schema(your_defined_schema)\
        .load()
    

    同时检查Schema定义是否符合Spark DataFrame的语法规范,避免因Schema错误引发额外问题。

内容的提问来源于stack exchange,提问作者Muhammad Arslan Waqar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 20:40:54