原因分析:
虽然在pom文件中添加了spark连接mongodb的依赖,但是spark的jars文件夹里都没有对应的jar包,导致在运行scala程序时报错。
解决方案:
(1)缺失DefaultSource类
报错信息:
Caused by: java.lang.ClassNotFoundException:com.mongodb.spark.sql.DefaultSource
解决方案:
找到SPARK_HOME的jars目录,是否有mongo-spark-connector_XXXXXX.jar。若没有,到官网 https://spark-packages.org/package/mongodb/mongo-spark 下载指定jar包(要仔细核对jar包支持的spark及scala版本),放到该目录下即可。
(2)缺失ConnectionString类
报错信息:
Caused by: java.lang.ClassNotFoundException: com.mongodb.ConnectionString
解决方案:
下载mongo-java-driver-3.2.2.jar(适用于spark2.0.0以及scala2.1.1)并添加到spark的jars文件夹中。
(3)缺失BsonDecimal128类
报错信息:
Caused by: java.lang.ClassNotFoundException: org.bson.BsonDecimal128
解决方案:
下载bson-3.6.4.jar并添加到spark的jars文件夹中
终于解决了!!!!!!!!!!!!!!!!!!!!