call_udf()
Описание
Функция call_udf()
вызывает пользовательскую функцию (UDF) по имени с указанными аргументами.
Параметры
name
: String - имя пользовательской функции*args
: Column - аргументы функции
Возвращаемое значение
Column - результат вызова пользовательской функции
Пример использования
from pyspark.sql import SparkSession
from pyspark.sql.functions import call_udf, col
from pyspark.sql.types import IntegerType
# Создаем SparkSession
spark = SparkSession.builder.appName("call_udf_example").getOrCreate()
# Регистрируем пользовательскую функцию
def square(x):
return x * x
spark.udf.register("square", square, IntegerType())
# Создаем DataFrame
data = [
(1,),
(2,),
(3,)
]
df = spark.createDataFrame(data, ["number"])
# Вызываем пользовательскую функцию через call_udf
result = df.select(
"number",
call_udf("square", col("number")).alias("squared")
).show()
# Результат:
# +------+-------+
# |number|squared|
# +------+-------+
# | 1| 1|
# | 2| 4|
# | 3| 9|
# +------+-------+
Примечания
- Функция должна быть предварительно зарегистрирована с помощью
spark.udf.register()
- Аргументы должны быть столбцами или литералами
- Для вызова встроенных функций используйте
call_function()
- Для вызова Pandas UDF используйте
pandas_udf()
- Для создания пользовательских функций используйте
udf()
илиudtf()