Skip to content

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()