将铸造语法从PostgresQl转换为Hive



以下语法来自较大的vertica查询(PostgreSQL)。是否可以将此语法转换为蜂巢?操作员是一致的。如果是这样,如何?

当前错误是:失败:ParseException行22:19无法识别'|'附近的输入'cast'(在表达式规范中

 ST_GeomFromText('POLYGON((' || 
    CAST(TRUNC(request_lng / {{zoom_factor}},2) AS numeric) * {{zoom_factor}} + sign(request_lng)*(.01 * {{zoom_factor}})
    || ' ' ||
    CAST(TRUNC(request_lat / ({{zoom_factor}} * {{stretch_factor}}),2) AS numeric) * ({{zoom_factor}}*{{stretch_factor}}) + sign(request_lat)*(.01 * {{zoom_factor}} * {{stretch_factor}})
    || ', ' ||
    CAST(TRUNC(request_lng / {{zoom_factor}},2) AS numeric) * {{zoom_factor}} + sign(request_lng)*(.01 * {{zoom_factor}})
    || ' ' ||
    CAST(TRUNC(request_lat / ({{zoom_factor}} * {{stretch_factor}}),2) AS numeric) * ({{zoom_factor}}*{{stretch_factor}}) 
    || ', ' ||
    CAST(TRUNC(request_lng / {{zoom_factor}},2) AS numeric) * {{zoom_factor}}  
    || ' ' ||
    CAST(TRUNC(request_lat / ({{zoom_factor}} * {{stretch_factor}}),2) AS numeric) * ({{zoom_factor}}*{{stretch_factor}}) 
    || ', ' ||
    CAST(TRUNC(request_lng / {{zoom_factor}},2) AS numeric) * {{zoom_factor}}  
    || ' ' ||
    CAST(TRUNC(request_lat / ({{zoom_factor}} * {{stretch_factor}}),2) AS numeric) * ({{zoom_factor}}*{{stretch_factor}}) + sign(request_lat)*(.01 * {{zoom_factor}} * {{stretch_factor}})
    || ', ' ||
    CAST(TRUNC(request_lng / {{zoom_factor}},2) AS numeric) * {{zoom_factor}} + sign(request_lng)*(.01 * {{zoom_factor}})
    || ' ' ||
    CAST(TRUNC(request_lat / ({{zoom_factor}} * {{stretch_factor}}),2) AS numeric) * ({{zoom_factor}}*{{stretch_factor}}) + sign(request_lat)*(.01 * {{zoom_factor}} * {{stretch_factor}})
    ||'))') as geography

此时,Hive不支持空间查询。

https://issues.apache.org/jira/browse/hive-5168https://cwiki.apache.org/confluence/display/hive/spatial Quericies(设计文档)

最新更新