UDF登録
ユーザー定義関数登録用のラッパー。このインスタンスはspark.udfからアクセスできます。
構文
Python
# Access through SparkSession
spark.udf
プロパティ
属性 | 説明 |
|---|---|
| UDF ログの UDFLogs インスタンスを返します。この機能は実験段階であり、不安定です。 |
方法
手法 | 説明 |
|---|---|
Python関数(ラムダ関数含む)またはユーザー定義関数をSQL関数として登録します。 Spark Connect をサポートします。 | |
Javaユーザー定義関数をSQL関数として登録します。 | |
Javaユーザー定義集計関数をSQL関数として登録します。 Spark Connect をサポートします。 |
例
Python
strlen = spark.udf.register("stringLengthString", lambda x: len(x))
spark.sql("SELECT stringLengthString('test')").collect()
Output
[Row(stringLengthString(test)='4')]
Python
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()
Output
[Row(slen(test)=4)]
Python
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()
Output
[Row(add_one(id)=1), Row(add_one(id)=2), Row(add_one(id)=3)]