Mongodb 在Spark 1.2.0的scala api中找不到saveAsNewAPIHadoopFile方法

Mongodb 在Spark 1.2.0的scala api中找不到saveAsNewAPIHadoopFile方法,mongodb,apache-spark,Mongodb,Apache Spark,我的环境:scala 2.11.7,CDH上的spark 1.2.0 spark-assembly-1.2.0-cdh5.3.8-hadoop2.5.0-cdh5.3.8.jar 我用spark从mongo获得数据。但是找不到saveAsNewAPIHadoopFile方法。只有saveAsTextFile、saveAsObjectFile方法可用于保存 val mongoConfig = new Configuration() mongoConfig.set("mongo.input.uri"

我的环境:scala 2.11.7,CDH上的spark 1.2.0 spark-assembly-1.2.0-cdh5.3.8-hadoop2.5.0-cdh5.3.8.jar

我用spark从mongo获得数据。但是找不到saveAsNewAPIHadoopFile方法。只有saveAsTextFile、saveAsObjectFile方法可用于保存

val mongoConfig = new Configuration()
mongoConfig.set("mongo.input.uri", "mongodb://192.168.0.211:27017/chat.article")
mongoConfig.set("mongo.input.query","{customerId: 'some mongo id', usage: {'$gt': 30}")
val articleRDD = sc.newAPIHadoopRDD(mongoConfig, classOf[MongoInputFormat], classOf[Text], classOf[BSONObject])

val outputConfig = new Configuration()
outputConfig.set("mongo.input.uri", "mongodb://192.168.0.211:27017/chat.recomm")
articleRDD.saveAsNewAPIHadoopFile("", classOf[Object], classOf[BSONObject],
  classOf[MongoOutputFormat[Object, BSONObject]], outputConfig)
这是我在Intellij IDEA中的屏幕截图

以下是我的build.sbt:

libraryDependencies += "org.mongodb.mongo-hadoop" % "mongo-hadoop-core" % "1.4.0"
libraryDependencies += "org.apache.hadoop" % "hadoop-common" % "2.5.0-cdh5.3.8"

【spark-assembly-1.2.0-cdh5.3.8-hadoop2.5.0-cdh5.3.8.jar】不在sbt中。我在cdh主目录中找到并手动将其移动到我的项目目录中。

因为该方法不在该包中,而是在以下包中:

<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongo-hadoop-core</artifactId>
    <version>1.4.0-SNAPSHOT</version>
</dependency>

org.mongodb
mongo hadoop内核
1.4.0-快照

您可能需要检查mongo hadoop核心包的兼容性,以便在Spark 1.2中使用合适的包,这只是我使用的。它不起作用。sc.newAPIHadoopRDD可用,但articleRDD.saveAsNewAPIHadoopFile不可用。您的articleRDD的类型是什么?它的类型必须是
RDD[(Object,BSONObject)]
它就是我在上面代码中定义的这种类型(val articleRDD=sc.newAPIHadoopRDD(mongoConfig,classOf[MongoInputFormat],classOf[Text],classOf[BSONObject])。这不是一种类型,文章的类型是
RDD[(Text,BSONObject)]
。你能用pom.xml更新你的问题吗(请格式化)即使我把它改成RDD[(Object,BSONObject)],它也不起作用