Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
用户定义的函数注册包装器。 可以通过 . 访问 spark.udf此实例。
Syntax
# Access through SparkSession
spark.udf
属性
| 财产 | 说明 |
|---|---|
logs |
返回 UDF 日志记录的 UDFLogs 实例。 此功能是实验性的,不稳定。 |
方法
| 方法 | 说明 |
|---|---|
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。 |
示例
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)]