对于空间数据的分布式处理,只需要在spark中将空间数据的特征要素对象从各种输入源转化为弹性分布式数据集(FeatureRDD)后,就可以针对该FeatureRDD进行各种空间及属性的分布式分析操作了。SuperMap iObjects for Spark提供了多种针对静态FeatureRDD进行的分析操作,包括聚合统计分析、密度分析、缓冲区分析、热点分析、轨迹重建、要素连接等。下面以几种常用的接口使用进行说明。
1 聚合分析
聚合分析,即将源特征要素数据集的空间及属性信息,收集并汇总统计到与其发生空间关系的另一组特征要素或规则格网中。根据聚合类型的不同使用了FeatureRDD中两个名为summarize的重载接口。
1.1特征要素聚合
特征要素聚合即将源要素数据集聚合到另一组与其发生指定空间关系的特征要素中,并统计聚合后的属性。例如将点数据集分别聚合到多个多边形中来统计每个多边形中点的个数,或将面数据集聚合到多条线上来统计每条线经过的所有面的总面积。
语法:
def summarize(summaryRDD: FeatureRDD, attributesStat: Array[FieldStatistics], relation: GeometricRelation): FeatureRDD
参数说明:
summaryRDD : 聚合要素数据集,源要素数据集将按此数据集规定的要素类型和范围来汇总统计。
attributesStat : 属性统计参数,其中FieldStatistics的属性由原数据集字段名、统计类型和结果统计字段名组成。
relation : 空间关系类型,包括是否包含是否相交等。
返回值说明:
返回聚合结果数据集,其中的要素几何对象是summaryRDD中几何对象的子集,属性字段为attributesStat中指定的统计结果字段。
示例:
val fieldStatistics = Array(FieldStatistics("", StatisticsMode.RecordCount, "RecordCount"), FieldStatistics