transform(col, f)
Описание
Функция transform()
возвращает массив элементов после применения преобразования к каждому элементу входного массива.
Параметры
col
: Column - массив для преобразованияf
: function - функция преобразования, которая принимает элемент массива и возвращает новое значение
Возвращаемое значение
Array - массив с преобразованными элементами
Пример использования
from pyspark.sql.functions import transform, array, lit, col
# Создаем DataFrame с массивами
df = spark.createDataFrame([
([1, 2, 3, 4],),
(["a", "b", "c"],),
(None,)
], ["array_col"])
# Преобразуем элементы массива
df.select(
"array_col",
transform("array_col", lambda x: x * 2).alias("doubled"),
transform("array_col", lambda x: x.upper()).alias("uppercase")
).show(truncate=False)
# Результат:
# +------------+------------+----------+
# |array_col |doubled |uppercase |
# +------------+------------+----------+
# |[1, 2, 3, 4]|[2, 4, 6, 8]|null |
# |[a, b, c] |null |[A, B, C] |
# |null |null |null |
# +------------+------------+----------+
# Пример с разными типами данных
df = spark.createDataFrame([
([1.0, 2.0, 3.0],),
([True, False],),
([None, 1],)
], ["values"])
df.select(
"values",
transform("values", lambda x: x * 2).alias("doubled"),
transform("values", lambda x: not x).alias("negated")
).show(truncate=False)