Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Inscrit une fonction Java définie par l’utilisateur en tant que fonction SQL.
En plus d’un nom et de la fonction elle-même, le type de retour peut être spécifié éventuellement. Lorsque le type de retour n’est pas spécifié, il est déduit par réflexion.
Syntaxe
registerJavaFunction(name, javaClassName, returnType=None)
Paramètres
| Paramètre | Type | Description |
|---|---|---|
name |
str | Nom de la fonction définie par l’utilisateur. |
javaClassName |
str | Nom complet de la classe Java. |
returnType |
DataType ou str, facultatif | Type de retour de la fonction Java inscrite. La valeur peut être un DataType objet ou une chaîne de type au format DDL. |
Retours
None
Remarques
Utilisez spark.udf.register dans une cellule de notebook Scala pour inscrire une fonction UDF Scala ; il sera accessible à partir de Python dans la même session.
Exemples
Inscrivez-vous avec un type de retour explicite 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)]
Inscrivez-vous sans spécifier de type de retour (déduit par réflexion).
spark.udf.registerJavaFunction(
"javaStringLength2", "test.org.apache.spark.sql.JavaStringLength")
spark.sql("SELECT javaStringLength2('test')").collect()
# [Row(javaStringLength2(test)=4)]
Inscrivez-vous avec une chaîne de type de retour au format DDL.
spark.udf.registerJavaFunction(
"javaStringLength3", "test.org.apache.spark.sql.JavaStringLength", "integer")
spark.sql("SELECT javaStringLength3('test')").collect()
# [Row(javaStringLength3(test)=4)]