Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Registra uma função Java definida pelo usuário como uma função SQL.
Além de um nome e a função em si, 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 |
DataType ou str, opcional | O tipo de retorno da função Java registrada. O valor pode ser um DataType objeto ou uma cadeia de caracteres de tipo formatada em DDL. |
Devoluções
None
Observações
Use spark.udf.register em uma célula de notebook Scala para registrar um UDF scala; ele estará acessível de Python na mesma sessão.
Exemplos
Registre-se 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)]
Registre-se 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)]
Registre-se com uma cadeia de caracteres de tipo de retorno formatada em DDL.
spark.udf.registerJavaFunction(
"javaStringLength3", "test.org.apache.spark.sql.JavaStringLength", "integer")
spark.sql("SELECT javaStringLength3('test')").collect()
# [Row(javaStringLength3(test)=4)]