首页 > 解决方案 > 未定义的函数:'ST_GeomFromText' 使用 Spark / Java

问题描述

我有以下数据框

------------------------------------------------------
|longitude  | latitude  | geomType |    geom          |
------------------------------------------------------    
|-7.0737816 |33.82666166|Polygon   |[GEOMETRY - 113 o]|
-------------------------------------------------------

我想在这个数据框上应用这个查询

我使用以下代码

dataframe= sparkSession.sql("select ST_GeomFromText('POINT("+col("longitude")+" , '',"+col("latitude")+")')");

我收到这个错误

Exception in thread "main" org.apache.spark.sql.AnalysisException: Undefined function: 'ST_GeomFromText'. This function is neither a registered temporary function nor a permanent function registered in the database 'default'.

请注意,我在 spark 上使用 java 语言

我需要你的帮助 。

谢谢

标签: javasqlapache-sparkgeometry

解决方案


由于 ST_GeomFromText 不是 org.apache.spark.sql.functions 的一部分,因此它不会在内部识别它。您需要首先为此函数定义 UDF。意味着您需要定义该函数的定义,然后将该函数与 spark 注册为 UDF,然后只有您可以使用此函数。您可以使用以下语法: sqlContext.udf.register("ST_GeomFromText", <name of function or definition of function>)

谢谢


推荐阅读