Partekatu honen bidez:


UDFRegistration

Contenedor para el registro de funciones definido por el usuario. Se puede acceder a esta instancia mediante spark.udf.

Sintaxis

# Access through SparkSession
spark.udf

Propiedades

Propiedad Descripción
logs Devuelve una instancia de UDFLogs para el registro de UDF. Esta característica es experimental e inestable.

Methods

Método Descripción
register(name, f, returnType) Registra una función de Python (incluidas las funciones lambda) o una función definida por el usuario como una función SQL. Soporta Spark Connect.
registerJavaFunction(name, javaClassName, returnType) Registra una función definida por el usuario de Java como una función SQL. Cuando returnType no se especifica, se deduce a través de la reflexión. Soporta Spark Connect.
registerJavaUDAF(name, javaClassName) Registra una función de agregado definida por el usuario de Java como una función SQL. Soporta Spark Connect.

Ejemplos

strlen = spark.udf.register("stringLengthString", lambda x: len(x))
spark.sql("SELECT stringLengthString('test')").collect()
[Row(stringLengthString(test)='4')]
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()
[Row(slen(test)=4)]
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()
[Row(add_one(id)=1), Row(add_one(id)=2), Row(add_one(id)=3)]