Scala+SBT构建Spark读取JSON文件时任务失败求助
解决Spark读取JSON任务失败的方案
核心问题排查与修复
1. 修正依赖版本兼容性
Spark版本与Mongo Spark连接器版本必须严格匹配,同时要对应正确的Scala版本:
- Spark 3.3.1对应的Mongo Spark Connector版本应为10.1.1(而非10.0.5),该版本兼容Scala 2.13
- 若坚持使用Spark 3.0.1,对应的Mongo连接器版本应为3.0.1,且Scala版本需调整为2.12.x(Spark 3.0.x对Scala 2.13支持不完善)
2. 修正依赖声明方式
Mongo Spark Connector的依赖需用%%自动匹配Scala版本,原配置中用%会导致Scala版本不兼容;同时Spark核心与SQL依赖建议添加Provided scope,避免与集群环境的依赖冲突:
ThisBuild / version := "0.1.0-SNAPSHOT" // 若使用Spark 3.3.1,保留Scala 2.13.10 ThisBuild / scalaVersion := "2.13.10" // 添加Provided scope避免集群依赖冲突 libraryDependencies += "org.apache.spark" %% "spark-core" % "3.3.1" % Provided libraryDependencies += "org.apache.spark" %% "spark-sql" % "3.3.1" % Provided // 修正Mongo连接器的版本和声明方式 libraryDependencies += "org.mongodb.spark" %% "mongo-spark-connector" % "10.1.1"
3. 额外排查方向
- 确认JSON文件路径正确,本地文件需保证所有节点可访问,或上传至HDFS等分布式存储
- 检查JSON格式合法性,避免存在缺失逗号、引号不闭合等语法错误
内容的提问来源于stack exchange,提问作者llD
相关产品推荐
相关产品推荐

