【发布时间】:2017-11-16 18:28:51
【问题描述】:
我正在尝试使用 MongoDB 的 Spark 连接器从 MongoDB 读取数据。我在启动应用程序时向 Spark conf 对象提供了数据库和集合详细信息。然后使用下面这段代码来阅读。
// create configuration
SparkSession spark = SparkSession.builder()
.master("local")
.appName("MongoSparkConnectorIntro")
.config("spark.mongodb.input.uri", "mongodb://localhost:27017/Employee.zipcodes")
.config("spark.mongodb.output.uri", "mongodb://localhost:27017/Employee.test")
.getOrCreate();
// Create a JavaSparkContext using the SparkSession's SparkContext object
JavaSparkContext jsc = new JavaSparkContext(spark.sparkContext());
/*Start Example: Read data from MongoDB************************/
JavaMongoRDD<Document> rdd = MongoSpark.load(jsc);
/*End Example**************************************************/
// Analyze data from MongoDB
System.out.println(rdd.count());
System.out.println(rdd.first().toJson());
但这无法连接本地主机数据库。这显示以下错误。
Exception in thread "main" java.lang.NoSuchMethodError: com.mongodb.spark.config.ReadConfig$.apply(Lorg/apache/spark/SparkConf;Lscala/collection/Map;)Ljava/lang/Object;
at com.mongodb.spark.MongoSpark$Builder.build(MongoSpark.scala:259)
at com.mongodb.spark.MongoSpark$.load(MongoSpark.scala:375)
at com.mongodb.spark.MongoSpark.load(MongoSpark.scala)
at com.mycompany.app.App2.main(App2.java:35)
我正在使用以下 maven 依赖项。
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.mongodb.spark</groupId>
<artifactId>mongo-spark-connector_2.11</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId>
<version>3.2.2</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.11.7</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.2.0</version>
</dependency>
【问题讨论】:
-
感谢您的回复。重复的 jar 文件造成了麻烦。问题已解决。
-
@zsxwing :- 可能需要你的帮助。我也有错误
Caused by: java.lang.ClassNotFoundException: com.mongodb.spark.rdd.api.java.JavaMongoRDD我使用的是 Spark 1.6.3 和 Scala 是 2.10.5 、Maven 依赖项、Mongo 连接器 1.1.0 、2.10 包。使用2.10 spark核心包
标签: java mongodb apache-spark