开发者社区> 问答> 正文

如何使用条件查询Spark MongoDB-Connector?

社区小助手 2018-12-21 13:45:36 836

最近我尝试使用官方文档中的 MongoDB-Connector,
JavaMongoRDD rdd = MongoSpark.load(jsc);
但演示将加载我的集合中的所有数据,
我只想在我的java或scala代码中运行此命令
db.pointer.find({"inserttime":{$lt:new Date(2018,0,4,7,0,10),$gte:new Date(2018,0,4,7,0,0)}},{"inserttime":1,})

我知道我可以RDD.filter() 用来获取我想要的数据。

但它会在第一时间查询所有数据,这不是我想要的。

编辑:
它提供了条件查询的任何方法,以减少查询时的结果数据。

像JDBC一样:
find(and(eq("status", "A"),or(lt("qty", 30), regex("item", "^p"))));

分布式计算 Java 数据库连接 Scala Spark
分享到
取消 提交回答
全部回答(1)
  • 社区小助手
    2019-07-17 23:23:24

    该文档使用聚合来过滤数据库级别的数据,因此您也可以这样做。

    // the following example was not tested

    BasicDBObject query = new BasicDBObject("$lt", new Date(2018,0,4,7,0,10);
    query.put("$gte", new Date(2018,0,4,7,0,0));

    JavaMongoRDD aggregatedRdd = rdd.withPipeline(singletonList(query));

    0 0
+ 订阅

大数据计算实践乐园,近距离学习前沿技术

推荐文章
相似问题