Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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)]