Поделиться через


call_udf

Вызов определяемой пользователем функции.

Синтаксис

import pyspark.sql.functions as sf

sf.call_udf(udfName=<udfName>, *cols)

Параметры

Параметр Тип Description
udfName str Имя определяемой пользователем функции (UDF).
cols pyspark.sql.Column или str Имена столбцов или столбцы, которые будут использоваться в UDF.

Возвраты

pyspark.sql.Column: результат выполнения udf.

Примеры

Пример 1. Использование call_udf с целым числом UDF.

from pyspark.sql.functions import call_udf, col
from pyspark.sql.types import IntegerType, StringType
df = spark.createDataFrame([(1, "a"),(2, "b"), (3, "c")],["id", "name"])
_ = spark.udf.register("intX2", lambda i: i * 2, IntegerType())
df.select(call_udf("intX2", "id")).show()
+---------+
|intX2(id)|
+---------+
|        2|
|        4|
|        6|
+---------+

Пример 2. Использование call_udf со строковым UDF.

from pyspark.sql.functions import call_udf, col
from pyspark.sql.types import IntegerType, StringType
df = spark.createDataFrame([(1, "a"),(2, "b"), (3, "c")],["id", "name"])
_ = spark.udf.register("strX2", lambda s: s * 2, StringType())
df.select(call_udf("strX2", col("name"))).show()
+-----------+
|strX2(name)|
+-----------+
|         aa|
|         bb|
|         cc|
+-----------+