Aller au contenu principal

UDFRegistration

Wrapper pour l'enregistrement des fonctions définies par l'utilisateur. Cette instance peut être consultée par spark.udf.

Syntaxe

Python
# Access through SparkSession
spark.udf

Propriétés

Propriété

Description

logs

Renvoie une instance UDFLogs pour la journalisation des UDF. Cette fonctionnalité est expérimentale et instable.

Propriété

Description

logs

Renvoie une instance UDFLogs pour la journalisation des UDF. Cette fonctionnalité est expérimentale et instable.

Méthodes

Méthode

Description

register(name, f, returnType)

Enregistre une fonction Python (y compris les fonctions lambda) ou une fonction définie par l'utilisateur en tant que fonction SQL. Prend en charge Spark Connect.

registerJavaFunction(name, javaClassName, returnType)

Enregistre une fonction Java définie par l'utilisateur en tant que fonction SQL. Lorsque returnType n'est pas spécifié, il est déduit par réflexion. Prend en charge Spark Connect.

registerJavaUDAF(name, javaClassName)

Enregistre une fonction d'agrégation définie par l'utilisateur Java en tant que fonction SQL. Prend en charge Spark Connect.

Méthode

Description

register(name, f, returnType)

Enregistre une fonction Python (y compris les fonctions lambda) ou une fonction définie par l'utilisateur en tant que fonction SQL. Prend en charge Spark Connect.

registerJavaFunction(name, javaClassName, returnType)

Enregistre une fonction Java définie par l'utilisateur en tant que fonction SQL. Lorsque returnType n'est pas spécifié, il est déduit par réflexion. Prend en charge Spark Connect.

registerJavaUDAF(name, javaClassName)

Enregistre une fonction d'agrégation définie par l'utilisateur Java en tant que fonction SQL. Prend en charge Spark Connect.

Exemples

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