Выполнение геопространственного запроса в MongoDB через Spark - PullRequest
0 голосов
/ 17 марта 2019

Я пытаюсь выполнить геопространственный запрос в MongoDB через Apache Spark. Это рабочий код в Java

BasicDBObject fields = new BasicDBObject.append(("geoid",1);
BasicDBObject queryDoc=new BasicDBObject("geometry", new BasicDBObject("$near", new BasicDBObject("$geometry", new BasicDBObject("type", "Point")
                             .append("coordinates", Arrays.asList(longi, lat)))
                         .append("$maxDistance", 100)));

Версия запроса Json:

{
    geometry: {
        $near: {
            $geometry: {
                type: "Point",
                coordinates: [-87.674179, 41.97646]
            },
            $maxDistance: 100
        }
    }
}

Теперь в spark я попытался добавить запрос следующим образом:

Map<String, String> mongoConfig = new HashMap<String, String>();
             String query=" {\n" + 
                    "                geometry:\n" + 
                    "                   {\n" + 
                    "                     $near :\n" + 
                    "                       {\n" + 
                    "                           $geometry: { type: \"Point\",  coordinates: [-87.674179, 41.97646] },\n" + 
                    "                           $maxDistance: 100\n" + 
                    "                       }\n" + 
                    "                     }\n" + 
                    "                  }";

mongoConfig.put("mongo.input.query",query);
JavaSparkContext jsc = new JavaSparkContext(session.sparkContext());
ReadConfig readConfig = ReadConfig.create(session).withOptions(mongoConfig);

Но это, похоже, не имеет никакого эффекта. Я забираю все документы в коллекции. Чего мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...