首页 > 解决方案 > 使用 Esri Geometry 使用 Hive 进行 ST_Point 查询,失败

问题描述

当我做

Select ST_Point(25,45) 

在 PostgresQL 中,我得到以下信息:

010100000000000000000039400000000000804640 

当我在 Hive 中做同样的事情时,我得到这个:

在此处输入图像描述

如果这是唯一的问题,我不会介意,但当我这样做时

Select ST_Azimuth(ST_Point(25,45) , ST_Point(75,100)) 

我收到此错误:

失败:SemanticException [错误 10014]:第 1:7 行错误的参数“100”:ST_Azimuth 类没有与(二进制,二进制)匹配的方法。

标签: postgresqlhivepostgisuser-defined-functionsesri

解决方案


我假设您引用的是Esri/spatial-framework-for-hadoop提供的 Hive 空间 UDF ?

  1. Hive 中没有几何类型,因此空间 UDF 返回几何的二进制表示。正如@JimJones 评论的那样,您可以使用ST_AsText(geom)将几何格式化为 WKT。
  2. 请使用Hive 空间 UDF 之一作为您正在开发的自定义 ST_Azimuth UDF 的参考。

推荐阅读