我正试图用java保存mongodb中的tweets,这就是我所拥有的;
JavaStreamingContext ssc = new JavaStreamingContext(sc, new Duration(
3000));
JavaDStream<Status> tweets = TwitterUtils.createStream(ssc);
JavaDStream<String> statuses = tweets
.map(new Function<Status, String>() {
public String call(Status status) {
return status.getUser().getName() + ":"
+ status.getText();
}
});
JavaDStream<String> users = tweets.map(new Function<Status, String>() {
public String call(Status status) {
return status.getUser().getName();
}
});
users.foreachRDD(new Function<JavaRDD<String>, Void>() {
public Void call(JavaRDD<String> rdd) throws Exception {
if (rdd.count() > 0)
rdd.saveAsTextFile("storage/users/test" + rdd.id()
+ "_.txt");
return null;
}
});
正如您所见,我可以使用rdd.saveastextfile将用户存储在文本文件中,但我需要的是一种将此rdd保存到数据库(mongodb)的方法。
1条答案
按热度按时间weylhg0b1#
您可以使用mongodbhadoop连接器来存储rdd,并使用
com.mongodb.hadoop.MongoOutputFormat
:查看一个示例项目来了解如何做到这一点也可能会有所帮助。