GeoMesa Spark 无法使用 UDF 函数

GeoMesa Spark can't use UDF functions

我想在 Java 中使用 GeoMesa UDF 函数,但我似乎无法使用任何函数,我有这些与 GeoMesa 相关的导入:

import org.locationtech.jts.geom.*;
import org.apache.spark.sql.types.*;
import org.locationtech.geomesa.spark.jts.*;

但我无法使用其中的任何 UDF 函数:

dataset.withColumn("column", st_makePoint(...));

我有这些 Maven 依赖项:

    <dependency>
        <dependency>
        <groupId>org.locationtech.geomesa</groupId>
        <artifactId>geomesa-spark-jts_2.11</artifactId>
        <version>2.4.1</version>
    </dependency>
    <dependency>
        <groupId>org.locationtech.geomesa</groupId>
        <artifactId>geomesa-spark-sql_2.11</artifactId>
        <version>2.4.1</version>
    </dependency>
    <dependency>
        <groupId>org.locationtech.geomesa</groupId>
        <artifactId>geomesa-spark-core_2.11</artifactId>
        <version>2.4.1</version>
    </dependency>

它根本无法识别 st_makePoint,我该怎么办?

为了将地理空间 UDF 和 UDT 添加到 Spark 会话,需要调用两个路径之一。对于 JTS 支持,可以按照此处的步骤操作:https://www.geomesa.org/documentation/stable/user/spark/sparksql_functions.html(基本上,在 Spark 会话上调用 .withJTS)。

或者,使用 Spark SQL 从 GeoMesa 数据源创建数据帧也应该注册 UDT 和 UDF。 (https://www.geomesa.org/documentation/stable/user/spark/sparksql.html#usage)

支持的地理空间函数的完整列表如下: https://www.geomesa.org/documentation/stable/user/spark/sparksql_functions.html

作为编辑,Spark SQL API、DataFrame API 和 PySpark API 都需要在 GeoMesa 中单独绑定。如果我错了,那么无法使用其他 API 之一的 Spark SQL 函数文档中的函数是一个错误,应该在 GeoMesa 中填写这里是 JIRA:https://geomesa.atlassian.net.