Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Registra una función definida por el usuario Java como una función SQL.
Además de un nombre y la propia función, el tipo de valor devuelto se puede especificar opcionalmente. Cuando no se especifica el tipo de valor devuelto, se deduce a través de la reflexión.
Sintaxis
registerJavaFunction(name, javaClassName, returnType=None)
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
name |
str | Nombre de la función definida por el usuario. |
javaClassName |
str | Nombre completo de la clase Java. |
returnType |
DataType o str, opcional | Tipo de valor devuelto de la función Java registrada. El valor puede ser un DataType objeto o una cadena de tipo con formato DDL. |
Devoluciones
None
Notas
Use spark.udf.register en una celda del cuaderno de Scala para registrar una UDF de Scala; será accesible desde Python en la misma sesión.
Ejemplos
Regístrese con un tipo de valor devuelto explícito 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)]
Regístrese sin especificar un tipo de valor devuelto (inferido a través de la reflexión).
spark.udf.registerJavaFunction(
"javaStringLength2", "test.org.apache.spark.sql.JavaStringLength")
spark.sql("SELECT javaStringLength2('test')").collect()
# [Row(javaStringLength2(test)=4)]
Regístrese con una cadena de tipo de valor devuelto con formato DDL.
spark.udf.registerJavaFunction(
"javaStringLength3", "test.org.apache.spark.sql.JavaStringLength", "integer")
spark.sql("SELECT javaStringLength3('test')").collect()
# [Row(javaStringLength3(test)=4)]