GeoSpark 整体介绍

GeoSpark是一款基于Spark的地理信息计算引擎,提供高性能的空间分析和查询服务。它支持并行计算、多种空间索引(如四叉树、R树)、PostGIS SQL语法,内置GeoTools,并能处理各种几何类型数据。GeoSpark利用SpatialRDD进行空间数据分区和操作,实现了高效的空间查询,如KNN、空间关联和坐标系转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GeoSpark

GeoSpark是基于Spark分布式的地理信息计算引擎,相比于传统的ArcGIS,GeoSpark可以提供更好性能的空间分析、查询服务。

功能:并行计算,空间查询,查询服务

GeoSpark 继承自Apache Apark,并拥有创造性的 空间弹性分布式数据集(SRDD),

GeoSpark 将JTS集成到项目中,支持拓扑运算

GeoSpark 支持PostGIS SQL语法

GeoSpark 内置了 GeoTools

String sql = "select ST_GeomFromWKB(geom) as geom, parkname, parkid  from parks";
df = spark.sql(sql);

官方参考网站:

https://datasystemslab.github.io/GeoSpark/api/sql/GeoSparkSQL-Overview/

-1. 主要功能

1.1 GeoSparkSQL

包含了最新的SQL功能

1.2 SRDDs

支持特殊的SRDDs,包括PointRDD,RectangleRDD,PolygonRDD,LineStringRDD

支持泛类型异构几何,Point,Polygon, LineString,MultiPoint,MultiPolygon,MultiLineString,GeometryCollection,LinearRing等

1.3 空间分割

空间分割技术有四叉树,KDB树,R树,沃罗诺伊图(Voronoi diagram)、均匀网络(Uniform grids)

1.4 空间索引

支持四叉树,R树,空间K近邻查询

0. 主要概念

SparkSession //初始化Spark
JavaSparkContext 
FileDataSplitter 
JavaSparkContext
JavaPairRDD
ShapefileReader		readToGeometryRDD
SpatialRDD buildIndex
JavaRDD
GeoSparkSQLRegistrator
GeoSparkVizRegistrator
Adapter		//在DataFrame和RDD之间进行转换操作

Dataset 
SpatialRDD PointRDD ,GeometryRDD // 几何弹性数据集RDD
Dataset<Row> 		  //DataFrame 数据集
	createOrReplaceTempView
	printSchema

ImageSerializableWrapper 
ImageGenerator


GeoTools 
	ShapefileDataStore 
	ShapefileDataStoreFactory 
	DataStoreFinder
	

俩种数据集:几何弹性数据集RDD及DataFrame数据集

DataFrame 数据集可以通过SQL语句来操作

0.1 SpatialRDD

rawSpatialRDD 有 setRawSpatialRDD 构建

indexedRawRDD  由 buildIndex 构建
    包含分区判断,spatialPartitionedRDD 和 rawSpatialRDD 完成

0.2 分区

rawSpatialRDD和spatialPartitionedRDD的区别就是spatialPartitionedRDD保存的是rawSpatialRDD分区后的RDD

SpatialPartitioner //集成自Spark中的Partitioner方法

Geospark就开始调用private JavaRDD partition(final SpatialPartitioner partitioner)方法来进行分区

SpatialPartitioner 需要实现俩个函数,第一个函数是告诉Spark要分成多少区,第二个函数是将对象与分区ID对应起来。

GeoSpark 实现了三种分区策略,分别为

0.3 并行计算

1. 空间索引

1.1 索引查询

RangeQuery SpatialRangeQuery

1.2 KNN临近查询

KNNQuery SpatialKnnQuery

1.3 空间关联查询

JoinQuery SpatialJoinQuery

2. 坐标系转换

PointRDD  CRSTransform //支持EPGS标准坐标系

3. 支持数据类型

文件数据:ShapeFile , CSV,GeoJson , WKT , NetCDF/HDF

数据库:MySql,PostGreSQL,PostGIS

4. 内部数据类型

Geometry,GeometryFactory , Coordinate, PointRDD , Polygon , Point ,

5. GeoSpark SQL

https://datasystemslab.github.io/GeoSpark/api/sql/GeoSparkSQL-Overview/

ST_GeomFromWKT

ST_Transform

ST_Contains

ST_PolygonFromEnvelope

ST_PointFromText

6. GeoSpark计算框架及逻辑

6.1 GeoSpark如何利用分布式实现高效查询

要想利用Spark,需要将自己的类型转换为RDD, SpatialRDD 是泛型,泛型要求类型是Geometry的子类

GeoSpark提供有PointRDD,PolygonRDD

7. 几何操作

数据集边界,最小边界矩形,多边形联合

8. 空间操作

空间范围查询,距离加入查询,空间加入查询(内部和重叠)以及空间K最近相邻元素查询

9. GeoSpark 方案

http://www.sohu.com/a/282853074_326074

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f1iVWGST-1577671565141)(C:\Users\ADMINI~1\AppData\Local\Temp\1572248661374.png)]

参考

BigGiser https://www.jianshu.com/u/922878a44beb

jyj019 https://blog.youkuaiyun.com/jyj1100/article/category/7913410

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Freedom3568

技术域不存在英雄主义,不进则退

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值