我的环境:scala 2.11.7,CDH上的火花1.2.0 火花组件-1.2.0-cdh5.3.8-hadoop2.5.0-cdh5.3.8.jar
我从mongo获得带有spark的数据。但无法找到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)
以下是我的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主目录中找到并手动将其移动到我的项目目录。
答案 0 :(得分:2)
因为该方法不在该包中,而是在以下方法中:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-hadoop-core</artifactId>
<version>1.4.0-SNAPSHOT</version>
</dependency>
您可能想要检查mongo-hadoop-core软件包的兼容性,以便为Spark 1.2使用正确的软件包