我遵循了mongohadoop连接器的文档。
我可以从 inputCol
集合到 outputCol
中的集合 testDB
数据库使用:
Configuration mongodbConfig = new Configuration();
mongodbConfig.set("mongo.job.input.format", "com.mongodb.hadoop.MongoInputFormat");
mongodbConfig.set("mongo.input.uri", "mongodb://localhost:27017/testDB.inputCol");
JavaSparkContext sc = new JavaSparkContext(sparkClient.sparkContext);
JavaPairRDD<Object, BSONObject> documents = sc.newAPIHadoopRDD(
mongodbConfig, // Configuration
MongoInputFormat.class, // InputFormat: read from a live cluster.
Object.class, // Key class
BSONObject.class // Value class
);
Configuration outputConfig = new Configuration();
outputConfig.set("mongo.output.format",
"com.mongodb.hadoop.MongoOutputFormat");
outputConfig.set("mongo.output.uri",
"mongodb://localhost:27017/testDB.outputCol");
documents.saveAsNewAPIHadoopFile(
"file:///this-is-completely-unused",
Object.class,
BSONObject.class,
MongoOutputFormat.class,
outputConfig
);
我想保存一个简单的文件说
{"_id":1, "name":"dev"}
在 outputCol
中的集合 testDB
数据库。
我怎样才能做到这一点?
2条答案
按热度按时间idv4meu81#
要在spark mongodb hadoop connector中使用查询,可以使用:
bqucvtff2#
都一样,只要把你的
BsonObject
变成一个RDD[(Object,BsonObject)]
(该对象可以是任何对象,null应该很好)并将其保存为对文档所做的操作