0

Hallo Ich möchte ein UDF-Objekt registrieren, das bereits erstellt wurde. Ich benutze Funken 2.1, und die Funktion sparkSession.udf.register() akzeptiert keinen UDF-Parameter nur eine reguläre Scala-Funktion. Es ist leicht, etwas aus der großen Spark-API zu verpassen, also fragt man nur, ob es eine Funktion oder einen Konstruktor gibt, der dies in 2.1 erlaubt?Spark 2.1 register UDF to functionRegistry

Antwort

1

In diesem Fall würde ich das das Problem umkehren und UDF-Anmeldung benutzen Sie UserDefinedFunction:

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

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

, die sowohl in DataFrames funktionieren würde:

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

und SQL:

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