UDFRegistration

Pembungkus untuk pendaftaran fungsi yang ditentukan pengguna. Instans ini dapat diakses oleh spark.udf.

Sintaksis

# Access through SparkSession
spark.udf

Karakteristik

Harta benda Deskripsi
logs Mengembalikan instans UDFLogs untuk pengelogan UDF. Fitur ini bersifat eksperimental dan tidak stabil.

Metode

Metode Deskripsi
register(name, f, returnType) Mendaftarkan fungsi Python (termasuk fungsi lambda) atau fungsi yang ditentukan pengguna sebagai fungsi SQL. Mendukung Spark Connect.
registerJavaFunction(name, javaClassName, returnType) Mendaftarkan fungsi yang ditentukan pengguna Java sebagai fungsi SQL. Ketika returnType tidak ditentukan, itu disimpulkan melalui pantulan. Mendukung Spark Connect.
registerJavaUDAF(name, javaClassName) Mendaftarkan fungsi agregat yang ditentukan pengguna Java sebagai fungsi SQL. Mendukung Spark Connect.

Examples

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