【发布时间】:2023-03-31 09:56:01
【问题描述】:
我有一个包含数千个点的 Hive 表。唯一的列是纬度|经度。我事先知道,这些点都在某个区域内,而且这些点的最外边缘确实形成了一个连续的多边形,但是很多点都在内部。我正在尝试确定哪些点是用于可视化的外部凸包。我不想使用所有点,因为它有杂乱的内部孔,在可视化上看起来不太好。我正在使用 hive-1.2.1000.2.4.2.0。这是我尝试过的:
hive> add jar /home/me/gis-tools-for-hadoop/samples/lib/esri-geometry-api.jar;
Added [/home/me/gis-tools-for-hadoop/samples/lib/esri-geometry-api.jar] to class path
Added resources: [/home/me/gis-tools-for-hadoop/samples/lib/esri-geometry-api.jar]
hive> add jar /home/me/gis-tools-for-hadoop/samples/lib/spatial-sdk-hadoop.jar;
Added [/home/me/gis-tools-for-hadoop/samples/lib/spatial-sdk-hadoop.jar] to class path
Added resources: [/home/me/gis-tools-for-hadoop/samples/lib/spatial-sdk-hadoop.jar]
hive> create temporary function ST_ConvexHull AS 'com.esri.hadoop.hive.ST_ConvexHull';
OK
Time taken: 0.014 seconds
hive> create temporary function ST_AsText AS 'com.esri.hadoop.hive.ST_AsText';
OK
Time taken: 0.009 seconds
hive> create temporary function ST_Point AS 'com.esri.hadoop.hive.ST_Point';
OK
Time taken: 0.009 seconds
hive> SELECT ST_AsText(ST_ConvexHull(ST_Point(latitude, longitude))) FROM sandbox11.cnst_zn;
我还尝试在查询中翻转纬度和经度顺序。在这两种情况下,我都会得到“MULTIPOLYGON EMPTY”作为响应。 UDF 的文档在这里:https://github.com/Esri/spatial-framework-for-hadoop/wiki/UDF-Operations#st_convexhull
【问题讨论】:
-
您可能会在this question 上找到一些有用的想法。
标签: hive gis esri convex-hull