2016-02-19 62 views
0

我正在尝试使用Spark和mongo-hadoop对经纬度/纬度坐标进行更改的MongoDB执行$ near查询。我如何使用mongo-hadoop进行查询?Spark:Mongo-Hadoop如何查询

除了somethnig像:

mongodbConfig.set("mongo.input.query", "{'field':'value'}")我看不出有什么意义。

有什么想法吗?

+0

上次我查过,这是唯一的公共选择,没有工作特别好。它也必须是严格的JSON。 – zero323

+0

是的,我得到的印象是使用MongoDB和Spark是一种灾难。理想的工作将用于创建geohash索引等内存中的geoqueries。我尝试在内存中使用lucene/spatial4j,它给了我mongodb的确切结果,但它远比Mongoldb慢得多。无论如何,在内存中运行数百万条查询可能Mongodb不会很好地扩展,并且Lucene解决方案会赢。我尝试过的另一件事是在ESRI中创建一个QuadTree,但我没有时间测试目前结果的质量。 – Randomize

+0

[麦哲伦](https://github.com/harsha2010/magellan)? – zero323

回答

0

我建议你可以看到com.mongodb.hadoop.util.MongoConfigUtil,有很多的配置查询设置:

mongodbConfig.set("mongo.input.query","{key:{\"$eq\":20160517080039}}"); 
mongodbConfig.set("mongo.input.fields","{key:0}"); 
mongodbConfig.setInt("mongo.input.limit", 1); 
+0

使用正确的格式 –