SpatialSpark和SparkDistributedMatrix调研小结

最近接触了github上两个基于spark的项目,现在做一个小结,这两个项目的链接会在下面具体介绍中给出。

SpatialSpark

SpatialSpark是一个基于Spark用来处理空间数据的一个分布式数据处理系统。在系统中,它提供了丰富的空间查询操作,同时为了实现高性能运算,采用了多种不同的空间索引结构。下面简单的介绍下它提供的某些功能。

一. 创建spark上下文

    val conf = new SparkConf().setAppName("Test for Spark SpatialRDD").setMaster("local[*]")

    val spark = new SparkContext(conf)

二. 从本地读取测试的数据文件,并生成SpatialRDD(项目自定义的一种RDD对象)

    val locationRDD=datardd.map{
      line=>
        val arry=line.split(",")
        try {
          (Point(arry(0).toFloat, arry(1).toFloat), arry(2))
        }catch
          {
            case e:Exception=>
            //println("input format error")
          }
    }.map
    {
      case (point:Point,v)=>(point,v)
      case ()=>null
      case _=>null
    }.filter(_!=null)

    val indexed = SpatialRDD(locationRDD).cache()

数据文件中部分数据如下,格式:(横坐标,纵坐标,属性值)

24.8597823387,-92.1412089223,1
29.2580133673,-81.478279848,2
28.9985588549,-82.3540992077,3
40.626048454,-86.0555605318,4
36.1591546487,-88.6869851979,5
32.5855413933,-82.3103059884,6
……

三. 空间数据的查询操作

1 区域查询,判断数据点是否在指定的区域内

    def testForSJOIN[V] (srdd:SpatialRDD[Point,V], spark:SparkContext) =
   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值