gpt4 book ai didi

mongodb - 使用java将rdd保存到mongo数据库中

转载 作者:可可西里 更新时间:2023-11-01 16:57:14 26 4
gpt4 key购买 nike

我正在尝试使用 Java 在 MongoDB 中保存推文,这就是我所拥有的;

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) 的方法。

最佳答案

您可以使用 MongoDB Hadoop Connector使用 com.mongodb.hadoop.MongoOutputFormat 将 RDD 保存到 MongoDB:

Configuration config = new Configuration();
config.set("mongo.output.format", "com.mongodb.hadoop.MongoOutputFormat");
config.set("mongo.output.uri", "mongodb://host:port/database.collection");
rdd.saveAsNewAPIHadoopFile("file://this-is-not-used",
<keyClass>,
<valueClass>,
MongoOutputFormat.class,
config);

查看 an example project 可能也有帮助了解如何做到这一点。

关于mongodb - 使用java将rdd保存到mongo数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28418879/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com