registrarFunçãoJava (UDFRegistration)
Registrar uma função definida pelo usuário Java como uma função SQL .
Além do nome e da própria função, o tipo de retorno pode ser especificado opcionalmente. Quando o tipo de retorno não é especificado, ele é inferido por meio de reflexão.
Sintaxe
registerJavaFunction(name, javaClassName, returnType=None)
Parâmetros
Parâmetro | Tipo | Descrição |
|---|---|---|
| str | Nome da função definida pelo usuário. |
| str | Nome totalmente qualificado da classe Java. |
| Tipo de dados ou str, opcional | O tipo de retorno da função Java registrada. O valor pode ser um objeto |
Devoluções
None
Notas
Use spark.udf.register em uma célula Scala Notebook para registrar uma UDF Scala ; ela estará acessível a partir Python na mesma sessão.
Exemplos
registro com um tipo de retorno 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)]
registro sem especificar um tipo de retorno (inferido via reflexão).
spark.udf.registerJavaFunction(
"javaStringLength2", "test.org.apache.spark.sql.JavaStringLength")
spark.sql("SELECT javaStringLength2('test')").collect()
# [Row(javaStringLength2(test)=4)]
registro com strings de tipo de retorno formatadas em DDL.
spark.udf.registerJavaFunction(
"javaStringLength3", "test.org.apache.spark.sql.JavaStringLength", "integer")
spark.sql("SELECT javaStringLength3('test')").collect()
# [Row(javaStringLength3(test)=4)]