Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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)]