다음을 통해 공유


UDFRegistration

사용자 정의 함수 등록을 위한 래퍼입니다. 이 인스턴스는 .에서 액세스할 spark.udf수 있습니다.

문법

# Access through SparkSession
spark.udf

속성

재산 설명
logs UDF 로깅에 대한 UDFLogs 인스턴스를 반환합니다. 이 기능은 실험적이고 불안정합니다.

메서드

메서드 설명
register(name, f, returnType) Python 함수(람다 함수 포함) 또는 사용자 정의 함수를 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)]