registerJavaFunction (UDFRegistration)

Registriert eine Java benutzerdefinierte Funktion als SQL-Funktion.

Zusätzlich zu einem Namen und der Funktion selbst kann der Rückgabetyp optional angegeben werden. Wenn der Rückgabetyp nicht angegeben wird, wird er über Spiegelung abgeleitet.

Syntax

registerJavaFunction(name, javaClassName, returnType=None)

Parameter

Parameter Typ Beschreibung
name str Name der benutzerdefinierten Funktion.
javaClassName str Vollqualifizierter Name der Java Klasse.
returnType Datentyp oder str, optional Der Rückgabetyp der registrierten Java-Funktion. Der Wert kann ein DataType Objekt oder eine DDL-formatierte Typzeichenfolge sein.

Rückkehr

None

Hinweise

Verwenden Sie spark.udf.register in einer Scala-Notizbuchzelle, um eine Scala UDF zu registrieren; sie kann über Python in derselben Sitzung zugänglich sein.

Beispiele

Registrieren sie sich mit einem expliziten DataType Rückgabetyp.

from pyspark.sql.types import IntegerType
spark.udf.registerJavaFunction(
    "javaStringLength", "test.org.apache.spark.sql.JavaStringLength", IntegerType())
spark.sql("SELECT javaStringLength('test')").collect()
# [Row(javaStringLength(test)=4)]

Registrieren Ohne Angabe eines Rückgabetyps (abgeleitet über Spiegelung).

spark.udf.registerJavaFunction(
    "javaStringLength2", "test.org.apache.spark.sql.JavaStringLength")
spark.sql("SELECT javaStringLength2('test')").collect()
# [Row(javaStringLength2(test)=4)]

Registrieren Mit einer DDL-formatierten Rückgabetypzeichenfolge.

spark.udf.registerJavaFunction(
    "javaStringLength3", "test.org.apache.spark.sql.JavaStringLength", "integer")
spark.sql("SELECT javaStringLength3('test')").collect()
# [Row(javaStringLength3(test)=4)]