2016-01-29 1 views

ответ

1

Существует множество способов запроса геопространственных данных из искры. Используйте magellan https://github.com/harsha2010/magellan или hive esri geospatial toolkit. https://github.com/Esri/spatial-framework-for-hadoop Я никогда не пробовал mongo librairie от stratio, но с источником данных искры api или соединителем mongo, я думаю, вы можете запускать гео-запросы с синтаксисом mongo, а затем преобразовывать их в RDD или Dataframe.

+0

Magellan не может выполнять запросы близости в настоящий момент. Эсри звучит интересно. – Randomize

0

Вы можете запросить MongoDB из Spark SQL с помощью этого library. MongoDB позволяет приложениям выполнять следующие типы запросов по геопространственным данным: включение, пересечение, близость.

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

Пример: Найти все аэропорты в Калифорнии. Для этого вам нужно получить местоположение Калифорнии (Polygon) и использовать команду $ geoWithin в запросе. Из корпуса он будет выглядеть следующим образом:

use geo 
var cal = db.states.findOne( {code : "CA"} ); 

db.airports.find( 
    { 
    loc : { $geoWithin : { $geometry : cal.loc } } 
    }, 
    { name : 1 , type : 1, code : 1, _id: 0 } 
); 

Результат:

{ "имя": "Модесто City - County", "типа": "", "код": "MOD"} ... {"name": "San Francisco Intl", "type": "International", "code": "SFO"} {"name": "San Jose International", "type": "International" , «код»: «SJC»}

Если вы хотите попробовать другой пример, ознакомьтесь с этим сообщением here.

+0

Как вы можете запускать запросы близости со стратификатором? – Randomize

Смежные вопросы