Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Registrerar en Java användardefinierad funktion som en SQL-funktion.
Förutom ett namn och själva funktionen kan returtypen anges. När returtypen inte har angetts härleds den via reflektion.
Syntax
registerJavaFunction(name, javaClassName, returnType=None)
Parameters
| Parameter | Type | Beskrivning |
|---|---|---|
name |
str | Namnet på den användardefinierade funktionen. |
javaClassName |
str | Fullständigt kvalificerat namn på Java-klassen. |
returnType |
DataType eller str, valfritt | Returtypen för den registrerade Java funktionen. Värdet kan vara antingen ett DataType objekt eller en DDL-formaterad typsträng. |
Retur
None
Notes
Använd spark.udf.register i en Scala Notebook-cell för att registrera en Scala UDF; den kommer att vara tillgänglig från Python i samma session.
Exempel
Registrera med en explicit DataType returtyp.
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)]
Registrera utan att ange en returtyp (härledd via reflektion).
spark.udf.registerJavaFunction(
"javaStringLength2", "test.org.apache.spark.sql.JavaStringLength")
spark.sql("SELECT javaStringLength2('test')").collect()
# [Row(javaStringLength2(test)=4)]
Registrera med en DDL-formaterad returtypsträng.
spark.udf.registerJavaFunction(
"javaStringLength3", "test.org.apache.spark.sql.JavaStringLength", "integer")
spark.sql("SELECT javaStringLength3('test')").collect()
# [Row(javaStringLength3(test)=4)]