Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Registra una funzione Java definita dall'utente come funzione SQL.
Oltre a un nome e alla funzione stessa, è possibile specificare facoltativamente il tipo restituito. Quando il tipo restituito non viene specificato, viene dedotto tramite reflection.
Sintassi
registerJavaFunction(name, javaClassName, returnType=None)
Parametri
| Parametro | Tipo | Descrizione |
|---|---|---|
name |
str | Nome della funzione definita dall'utente. |
javaClassName |
str | Nome completo della classe Java. |
returnType |
DataType o str, facoltativo | Tipo restituito della funzione Java registrata. Il valore può essere un DataType oggetto o una stringa di tipo DDL formattato. |
Restituzioni
None
Note
Usare spark.udf.register in una cella del notebook Scala per registrare una funzione definita dall'utente scala; sarà accessibile da Python nella stessa sessione.
Examples
Eseguire la registrazione con un tipo restituito esplicito DataType .
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)]
Registra senza specificare un tipo restituito (dedotto tramite reflection).
spark.udf.registerJavaFunction(
"javaStringLength2", "test.org.apache.spark.sql.JavaStringLength")
spark.sql("SELECT javaStringLength2('test')").collect()
# [Row(javaStringLength2(test)=4)]
Eseguire la registrazione con una stringa di tipo restituito in formato DDL.
spark.udf.registerJavaFunction(
"javaStringLength3", "test.org.apache.spark.sql.JavaStringLength", "integer")
spark.sql("SELECT javaStringLength3('test')").collect()
# [Row(javaStringLength3(test)=4)]