未定义的函数:使用spark/java的“st\u geomfromtext”

lyr7nygr  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(409)

我有以下Dataframe

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

我想在这个Dataframe上应用这个查询
我使用以下代码

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语言
我需要你的帮助。
谢谢您

a11xaf1n

a11xaf1n1#

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

相关问题