postgresql - 使用 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 类没有与(二进制,二进制)匹配的方法。
解决方案
我假设您引用的是Esri/spatial-framework-for-hadoop提供的 Hive 空间 UDF ?
- Hive 中没有几何类型,因此空间 UDF 返回几何的二进制表示。正如@JimJones 评论的那样,您可以使用
ST_AsText(geom)
将几何格式化为 WKT。 - 请使用Hive 空间 UDF 之一作为您正在开发的自定义 ST_Azimuth UDF 的参考。
推荐阅读
- javascript - 在呈现服务器端的大型分页 DataTable 中的任何行中查找数据
- python - Django显示参考名称而不是ID
- r - 如何使用 R 中的 tidyverse 按组创建一个变量的值组合
- google-cloud-platform - 如何为服务帐户设置 Google Cloud 应用程序凭据
- node.js - 如何使用 Google Cloud Functions 和 puppeteer 将屏幕截图保存在 Google Cloud Bucket 中?
- java - 有更好的方法来检查 Top Activity 是否发生了变化?
- django - CPanel 上的 Django 部署错误“Apache 没有对该文件的读取权限。请修复相关文件权限。”
- python - 根据一列中的值创建 json 文件
- python - 跨同一数据帧的多个滚动平均值
- javascript - 如何用 JavaScript 编写简单的“数字阶梯”?