UDFRegistration

Obálka pro registraci uživatelem definované funkce K této instanci má přístup spark.udf.

Syntaxe

# Access through SparkSession
spark.udf

Vlastnosti

Vlastnictví Description
logs Vrátí instanci UDFLogs pro protokolování UDF. Tato funkce je experimentální a nestabilní.

Methods

Metoda Description
register(name, f, returnType) Zaregistruje funkci Pythonu (včetně funkcí lambda) nebo uživatelem definovanou funkci jako funkci SQL. Podporuje Spark Connect.
registerJavaFunction(name, javaClassName, returnType) Zaregistruje uživatelem definovanou funkci Java jako funkci SQL. Pokud returnType není zadán, odvodí se odrazem. Podporuje Spark Connect.
registerJavaUDAF(name, javaClassName) Zaregistruje uživatelem definovanou agregační funkci Javy jako funkci SQL. Podporuje Spark Connect.

Příklady

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