使用esri的gis-tools-for-hadoop工具包,在hive中实现空间计算
2021/11/9 23:14:20
本文主要是介绍使用esri的gis-tools-for-hadoop工具包,在hive中实现空间计算,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
以基站工参表实现空间关系判断(点在多边形内)为例,使用ESRI的gis-tools-for-hadoop工具包,在hive中实现数据空间计算的几个主要步骤:
- 上传空间地理实体数据到hadoop集群;
- hive中创建地理实体表;
- 与基站工参表做空间判断(点在多边形内)。
一、Hive
Hive是基于Hadoop的数据仓库,采用MPP架构(大规模并行处理),存储结构化数据,提供sql查询功能,sql语句转换为MapReduce任务运行。非常适合数据仓库的统计分析。
二、gis-tools-for-hadoop
gis-tools-for-hadoop是ESRI推出的开源工具包,与hive结合,使用分布式运算实现海量空间数据的存取、计算、关系判断等功能。包括两个jar包:
- esri-geometry-api.jar
- spatial-sdk-hadoop.jar
jar包下载地址
三、实现空间关系判断和绑定到地理区块
0. 数据准备
将地理实体面数据导出geojson文件,放到同一个目录下(geojson8.31目录)
1. 将地理实体数据和esri的两个jar上传到hadoop集群
hadoop fs -copyFromLocal bch/user/meimei/geojson8.31/* /user/meihong/geojson hadoop fs -copyFromLocal bch/user/meimei/esri-geometry-api.jar /user/meihong/esri-geometry-api.jar hadoop fs -copyFromLocal tmp/meimei/spatial-sdk-hadoop.jar /user/meihong/spatial-sdk-hadoop.jar
2. hive中创建地理实体表
use syxzDB; drop table if exists geo_block; CREATE TABLE if not exists geo_block (id string, name string, boundaryshape binary, cid string) ROW FORMAT SERDE 'com.esri.hadoop.hive.serde.JsonSerde' STORED AS INPUTFORMAT 'com.esri.json.hadoop.EnclosedJsonInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION '/user/meihong/geojson'; select id,cid from geo_block; --测试数据是否导入
3. sql语句实现点在多边形内的空间关系判断,并生成新表
add jar hdfs://bch/user/meimei/esri-geometry-api.jar; add jar hdfs://bch/user/mei/spatial-sdk-hadoop.jar; create temporary function ST_Point as 'com.esri.hadoop.hive.ST_Point'; create temporary function ST_Contains as 'com.esri.hadoop.hive.ST_Contains'; insert overwrite table t_cell_match select cell.city,cell.county,cell.cell_name,cell.net_type,cell.lc,cell.lon,cell.lat,cell.coverage, geo_block.id,geo_block.name,geo_block.cid from cell left outer join geo_block where ST_Contains(geo_block.boundaryshape,ST_Point(cell.lon,cell.lat));
扫码加入我的知识星球:“时空大数据”,可获取更多更高品质的地图、地理信息、GIS、大数据、时空分析、实景三维、地图可视化等方面的知识和文件,前20名可享5折优惠券。
这篇关于使用esri的gis-tools-for-hadoop工具包,在hive中实现空间计算的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2023-05-13Windows下hadoop环境搭建之NameNode启动报错
- 2023-04-14hadoop伪分布式集群的安装(不是单机版)
- 2022-12-05Hadoop生态系统—数据仓库Hive的安装
- 2022-11-02Win10搭建Hadoop环境
- 2022-10-19Hadoop生态系统(数据仓库Hive的安装)
- 2022-10-03Hadoop、storm和Spark Streaming简单介绍
- 2022-10-03胖虎的Hadoop笔记——Hadoop的伪分布式部署
- 2022-09-11Ubuntu搭建全分布式Hadoop
- 2022-09-11Ubuntu搭建全分布式Hadoop
- 2022-09-09Ubuntu下安装伪分布式HADOOP遇到的一些问题