Partager via


UDFRegistration

Wrapper pour l’inscription de fonction définie par l’utilisateur. Cette instance est accessible par spark.udf.

Syntaxe

# Access through SparkSession
spark.udf

Propriétés

Propriété Description
logs Retourne une instance UDFLogs pour la journalisation UDF. Cette fonctionnalité est expérimentale et instable.

Méthodes

Méthode Description
register(name, f, returnType) Inscrit une fonction Python (y compris des fonctions lambda) ou une fonction définie par l’utilisateur en tant que fonction SQL. Prend en charge Spark Connect.
registerJavaFunction(name, javaClassName, returnType) Inscrit une fonction Java définie par l’utilisateur en tant que fonction SQL. Lorsqu’elle returnType n’est pas spécifiée, elle est déduite par réflexion. Prend en charge Spark Connect.
registerJavaUDAF(name, javaClassName) Inscrit une fonction d’agrégation définie par l’utilisateur Java en tant que fonction SQL. Prend en charge Spark Connect.

Exemples

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)]