共用方式為


UDFR申請

用於使用者自訂函數註冊的包裝器。 此實例可由 spark.udf存取。

語法

# Access through SparkSession
spark.udf

屬性

房產 說明
logs 回傳一個 UDFLogs 實例用於 UDF 日誌。 此功能仍屬實驗性質且不穩定。

方法

方法 說明
register(name, f, returnType) 將 Python 函式(包括 lambda 函式)或使用者定義函式註冊為 SQL 函式。 支援 Spark Connect。
registerJavaFunction(name, javaClassName, returnType) 將 Java 使用者定義的函式註冊為 SQL 函式。 若 returnType 未指定,則透過反射推斷。 支援 Spark Connect。
registerJavaUDAF(name, javaClassName) 將 Java 使用者定義的彙總函數註冊為 SQL 函式。 支援 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)]