我厌倦了使用ST_Aggr_Union函数将多个多边形组合在一起。我将此功能从.jar文件导入到配置单元。我编写的代码如下:
选择st_aggr_union(st_polygon('polygon((0 0,1 0,1 1,0 1))'),st_polygon('polygon((2 0,3 0,3 1,2 1))')));
执行此行代码后,出现以下错误:
错误:编译语句时出错:失败:NoMatchingMethodException没有与(二进制,二进制)的com.esri.hadoop.hive.ST_Aggr_Union类匹配的方法。可能的选择:FUNC(二进制)(状态= 42000,代码= 40000)
我确定该功能位于配置单元中。
desc函数st_aggr_union;
TAB_NAMEst_aggr_union(ST_Geometry)-传递的所有几何的聚合并集]
不知道这里发生了什么。任何意见将不胜感激。
好的,我知道这里发生了什么。由于ST_Aggr_Union是UDTF,因此它将整个列作为输入,并吐出相应列中所有行的组合。因此,答案应该是
从mytable t中选择ST_Aggr_Union(t.polygon)