Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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)]