java - 未定义的函数:'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 语言
我需要你的帮助 。
谢谢
解决方案
由于 ST_GeomFromText 不是 org.apache.spark.sql.functions 的一部分,因此它不会在内部识别它。您需要首先为此函数定义 UDF。意味着您需要定义该函数的定义,然后将该函数与 spark 注册为 UDF,然后只有您可以使用此函数。您可以使用以下语法:
sqlContext.udf.register("ST_GeomFromText", <name of function or definition of function>)
谢谢
推荐阅读
- javascript - 启动简单的 React 应用程序 - 带有转译的前端和后端
- java - SQLite / Java 将每个名称的最新时间戳与 24 小时前的时间戳进行比较
- php - 谷歌日历的 PHP 工作目录
- java - eclipse插件项目插件依赖地狱
- c# - 如何将目录中的文件夹名称加载到可观察的集合中?
- c# - NHibernate 在查询中指定索引
- data-structures - 我们什么时候可以在二叉搜索树上使用简单二叉树?
- android - Django 到 Android
- php - 数组编号问题
- c# - Mono (Linux, C#): 找不到同一文件夹中的 DLL (System.DllNotFoundException)