有没有办法将MongoDB与Spark一起用于地理空间查询?我看不出如何用Stratio做到这一点。
答案 0 :(得分:1)
有很多方法可以从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。
答案 1 :(得分:0)
您可以使用此library从Spark SQL查询MongoDB。 MongoDB允许应用程序对地理空间数据执行以下类型的查询:包含,交集,邻近。
显然,除了地理空间的运营商之外,您还可以使用所有其他运营商。现在让我们看一些具体的例子。
这是一个例子: 查找加利福尼亚州的所有机场。为此,您需要获取California位置(Polygon)并在查询中使用命令$ geoWithin。从shell看起来像:
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”} ... {“name”:“旧金山国际机场”,“类型”:“国际”,“代码”:“SFO”} {“name”:“San Jose International”,“type”:“International”,“code”:“SJC”}
如果您想尝试其他示例,请查看此博文here。