Spark 2.1 注册 UDF 到 functionRegistry

Spark 2.1 register UDF to functionRegistry

您好,我想注册一个已经创建的 UDF 对象。我正在使用 spark 2.1,并且 sparkSession.udf.register() 函数不接受 UDF 参数,只接受常规 scala 函数。大型 Spark API 很容易遗漏一些东西,所以只问是否有一个函数或构造函数可以在 2.1 中允许这样做?

在这种情况下,我会扭转问题并使用 udf 注册来获得 UserDefinedFunction:

import org.apache.spark.sql.expressions.UserDefinedFunction

val id: UserDefinedFunction = spark.udf.register("id", (x: Int) => x)

哪个在 DataFrames:

中都有效
val id: UserDefinedFunction = spark.udf.register("id", (x: Int) => x)

和SQL:

spark.sql("SELECT id(id) FROM RANGE(42)")