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


Преобразования

Возвращает массив элементов после применения преобразования к каждому элементу в входном массиве. Поддерживает Spark Connect.

Для соответствующей функции Databricks SQL смотрите функцию transform.

Синтаксис

from pyspark.databricks.sql import functions as dbf

dbf.transform(col=<col>, f=<f>)

Параметры

Параметр Тип Description
col pyspark.sql.Column или str Имя столбца или выражения.
f function Функция, применяемая к каждому элементу входного массива. Может принимать одну из следующих форм: Unary (x: Column) -> Column или Binary (x: Column, i: Column) -> Column , где второй аргумент является 0-м индексом элемента.

Возвраты

pyspark.sql.Column: новый массив преобразованных элементов.

Примеры

Пример 1. Преобразование элементов массива с помощью простой функции

from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(1, [1, 2, 3, 4])], ("key", "values"))
df.select(dbf.transform("values", lambda x: x * 2).alias("doubled")).show()
+------------+
|     doubled|
+------------+
|[2, 4, 6, 8]|
+------------+

Пример 2. Преобразование элементов массива с помощью индекса

from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(1, [1, 2, 3, 4])], ("key", "values"))
def alternate(x, i):
    return dbf.when(i % 2 == 0, x).otherwise(-x)
df.select(dbf.transform("values", alternate).alias("alternated")).show()
+--------------+
|    alternated|
+--------------+
|[1, -2, 3, -4]|
+--------------+