我有以下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语言
我需要你的帮助。
谢谢您
1条答案
按热度按时间a11xaf1n1#
由于st\u geomfromtext不是org.apache.spark.sql.functions的一部分,因此它不会在内部识别它。您需要首先为这个函数定义自定义项。意味着您需要定义该函数的定义,然后使用spark将该函数注册为udf,这样只有您才能使用该函数。可以使用以下语法:
sqlContext.udf.register("ST_GeomFromText", <name of function or definition of function>)
谢谢