registerJavaFunction (UDFRegistration)

Registreert een door de gebruiker gedefinieerde Java functie als een SQL-functie.

Naast een naam en de functie zelf kan het retourtype desgewenst worden opgegeven. Wanneer het retourtype niet is opgegeven, wordt dit afgeleid via weerspiegeling.

Syntaxis

registerJavaFunction(name, javaClassName, returnType=None)

Parameterwaarden

Kenmerk Typ Beschrijving
name str Naam van de door de gebruiker gedefinieerde functie.
javaClassName str Volledig gekwalificeerde naam van de klasse Java.
returnType DataType of str, optioneel Het retourtype van de geregistreerde Java functie. De waarde kan een DataType object of een tekenreeks met DDL-indeling zijn.

Retouren

None

Aantekeningen

Gebruik spark.udf.register in een Scala-notebookcel om een Scala UDF te registreren; het is toegankelijk vanuit Python in dezelfde sessie.

Examples

Registreer u met een expliciet DataType retourtype.

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)]

Registreren zonder een retourtype op te geven (afgeleid via weerspiegeling).

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

Registreer u bij een tekenreeks met DDL-indeling voor het retourtype.

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