Pular para o conteúdo principal

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

name

str

Nome da função definida pelo usuário.

javaClassName

str

Nome totalmente qualificado da classe Java.

returnType

Tipo de dados ou str, opcional

O tipo de retorno da função Java registrada. O valor pode ser um objeto DataType ou uma string de tipo formatada em DDL.

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 .

Python
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).

Python
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.

Python
spark.udf.registerJavaFunction(
"javaStringLength3", "test.org.apache.spark.sql.JavaStringLength", "integer")
spark.sql("SELECT javaStringLength3('test')").collect()
# [Row(javaStringLength3(test)=4)]