【发布时间】:2016-01-30 05:21:54
【问题描述】:
有什么方法可以使用 MongoDB 和 Spark 进行地理空间查询?我看不出如何用 Stratio 做到这一点。
【问题讨论】:
标签: mongodb apache-spark
有什么方法可以使用 MongoDB 和 Spark 进行地理空间查询?我看不出如何用 Stratio 做到这一点。
【问题讨论】:
标签: mongodb apache-spark
有很多方法可以从 spark 中查询地理空间数据。使用 magellan https://github.com/harsha2010/magellan 或 hive esri 地理空间工具包。 https://github.com/Esri/spatial-framework-for-hadoop 我从未尝试过来自 stratio 的 mongo librairie,但是使用 spark 数据源 api 或 mongo 连接器,我认为您可以使用 mongo 语法运行地理查询,然后将它们转换为 RDD 或 Dataframe。
【讨论】:
您可以使用此library 从 Spark SQL 查询 MongoDB。 MongoDB 允许应用程序对地理空间数据进行以下类型的查询:包含、交叉、邻近。
显然,除了地理空间运算符之外,您还可以使用所有其他运算符。现在让我们看一些具体的例子。
这是一个例子: 查找加利福尼亚的所有机场。为此,您需要获取加利福尼亚位置(多边形)并在查询中使用命令 $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 }
);
结果:
{ "name" : "Modesto City - County", "type" : "", "code" : "MOD" } ... {“名称”:“旧金山国际”,“类型”:“国际”,“代码”:“SFO”} {“名称”:“圣何塞国际”,“类型”:“国际”,“代码”:“SJC”}
如果您想尝试其他示例,请查看此博客文章 here。
【讨论】: