Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb Mongo Hadoop Connecter支持的聚合?_Mongodb_Hadoop_Apache Spark - Fatal编程技术网

Mongodb Mongo Hadoop Connecter支持的聚合?

Mongodb Mongo Hadoop Connecter支持的聚合?,mongodb,hadoop,apache-spark,Mongodb,Hadoop,Apache Spark,我试图使用spark的mongo hadoop()库对mongo集合执行一些聚合操作。我使用mongo.input.query配置输入查询,该配置作为输入发送到newApiHadoopRDD Configuration mongodbConfig = new Configuration(); mongodbConfig.set("mongo.job.input.format","com.mongodb.hadoop.MongoInputFormat"; mongodbConfig.set("mo

我试图使用spark的mongo hadoop()库对mongo集合执行一些聚合操作。我使用mongo.input.query配置输入查询,该配置作为输入发送到newApiHadoopRDD

Configuration mongodbConfig = new Configuration();
mongodbConfig.set("mongo.job.input.format","com.mongodb.hadoop.MongoInputFormat";
mongodbConfig.set("mongo.input.uri","mongodb://"+mongodbHost+"/"+database.collection);
mongodbConfig.set("mongo.input.query",query);

JavaPairRDD audienceRDD =  sc.newAPIHadoopRDD(mongodbConfig, MongoInputFormat.class,Object.class, BSONObject.class);
audienceRDD.foreach(e -> System.out.println("data: "+e.toString()));


query={ "aggregate" : "__collection__" , "pipeline" : [ 
{ "$match" : { "date" : { "$gte" : { "$date" : "2016-08-09T00:00:00.000Z"} , "$lte" : { "$date" : "2016-08-11T00:00:00.000Z"}}}} , 
{ "$unwind" : "$segments"} , 
{ "$group" : { "_id" : "$segments" , "audienceSize" : { "$sum" : "$count"}}}]}, sort={ }, fields={ }, limit=0, notimeout=false}

如果我使用像find这样的普通查询,那么该操作是成功的。但当我尝试使用groupBy时,我无法在RDD上获得任何记录。有人能建议一种使用mongo hadoop连接器对mongo集合执行聚合操作的方法吗

无论如何,由于运行聚合查询有16MB的限制,我最终用记录创建了一个临时集合,然后对该临时集合进行了查询。将响应存储在RDD上,一旦我完成了我想做的事情,我就会删除临时集合

也就是说,我认为添加使用mongo.input.query进行聚合查询的功能将是对这个漂亮的连接器库的一个很好的补充