【问题标题】:How to query MongoDB via Spark for geospatial queries如何通过 Spark 查询 MongoDB 以进行地理空间查询
【发布时间】:2016-01-30 05:21:54
【问题描述】:

有什么方法可以使用 MongoDB 和 Spark 进行地理空间查询?我看不出如何用 Stratio 做到这一点。

【问题讨论】:

    标签: mongodb apache-spark


    【解决方案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。

    【讨论】:

    • Magellan 目前无法进行邻近查询。 Esri 听起来很有趣。
    【解决方案2】:

    您可以使用此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

    【讨论】:

    • 如何使用 stratio 运行邻近查询?
    猜你喜欢
    • 2015-06-07
    • 1970-01-01
    • 2020-01-27
    • 2019-01-30
    • 2019-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多