Pular para o conteúdo principal

Registro UDF

Wrapper para registro de funções definidas pelo usuário. Esta instância pode ser acessada por spark.udf.

Sintaxe

Python
# Access through SparkSession
spark.udf

Propriedades

Propriedade

Descrição

logs

Retorna uma instância de UDFLogs para registro UDF . Este recurso é experimental e instável.

Métodos

Método

Descrição

register(name, f, returnType)

Registrar uma função Python (incluindo funções lambda) ou uma função definida pelo usuário como uma função SQL . Compatível com Spark Connect.

registerJavaFunction(name, javaClassName, returnType)

Registrar uma função definida pelo usuário Java como uma função SQL . Quando returnType não é especificado, ele é inferido por meio de reflexão. Compatível com Spark Connect.

registerJavaUDAF(name, javaClassName)

Registrar uma função agregada definida pelo usuário Java como uma função SQL . Compatível com Spark Connect.

Exemplos

Python
strlen = spark.udf.register("stringLengthString", lambda x: len(x))
spark.sql("SELECT stringLengthString('test')").collect()
Output
[Row(stringLengthString(test)='4')]
Python
from pyspark.sql.types import IntegerType
from pyspark.sql.functions import udf

slen = udf(lambda s: len(s), IntegerType())
_ = spark.udf.register("slen", slen)
spark.sql("SELECT slen('test')").collect()
Output
[Row(slen(test)=4)]
Python
import pandas as pd
from pyspark.sql.functions import pandas_udf

@pandas_udf("integer")
def add_one(s: pd.Series) -> pd.Series:
return s + 1

_ = spark.udf.register("add_one", add_one)
spark.sql("SELECT add_one(id) FROM range(3)").collect()
Output
[Row(add_one(id)=1), Row(add_one(id)=2), Row(add_one(id)=3)]