Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wrapper für die registrierung benutzerdefinierter Funktionen. Auf diese Instanz kann zugegriffen werden.spark.udf
Syntax
# Access through SparkSession
spark.udf
Eigenschaften
| Eigentum | Beschreibung |
|---|---|
logs |
Gibt eine UDFLogs-Instanz für die UDF-Protokollierung zurück. Dieses Feature ist experimentell und instabil. |
Methodik
| Methode | Beschreibung |
|---|---|
register(name, f, returnType) |
Registriert eine Python-Funktion (einschließlich Lambda-Funktionen) oder eine benutzerdefinierte Funktion als SQL-Funktion. Unterstützt Spark Connect. |
registerJavaFunction(name, javaClassName, returnType) |
Registriert eine benutzerdefinierte Java-Funktion als SQL-Funktion. Wenn returnType sie nicht angegeben ist, wird sie über Spiegelung abgeleitet. Unterstützt Spark Connect. |
registerJavaUDAF(name, javaClassName) |
Registriert eine benutzerdefinierte Java-Aggregatfunktion als SQL-Funktion. Unterstützt Spark Connect. |
Beispiele
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)]