嗨,我想注册一个已经创建的 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)")