transform_keys(map, f)
Описание
Функция transform_keys() применяет указанную функцию к ключам карты (map), сохраняя значения без изменений.
Параметры
map: Column - карта (map)f: Column - функция, которая принимает ключ и возвращает новый ключ
Возвращаемое значение
Column - новая карта с преобразованными ключами
Пример использования
from pyspark.sql.functions import transform_keys, map, expr
from pyspark.sql import SparkSession
# Создаем SparkSession
spark = SparkSession.builder.appName("transform_keys_example").getOrCreate()
# Создаем DataFrame с картами
data = [
    ({"a": 1, "b": 2, "c": 3},),
    ({"x": 10, "y": 20},)
]
df = spark.createDataFrame(data, ["map"])
# Преобразуем ключи карты
result = df.withColumn(
    "upper_keys",
    transform_keys("map", expr("(k, v) -> upper(k)"))
).withColumn(
    "concat_keys",
    transform_keys("map", expr("(k, v) -> concat(k, '_new')"))
)
result.show(truncate=False)
# Результат:
# +----------------+----------------+------------------+
# |map             |upper_keys      |concat_keys       |
# +----------------+----------------+------------------+
# |{a -> 1, b -> 2}|{A -> 1, B -> 2}|{a_new -> 1, b_new -> 2}|
# |{x -> 10, y -> 20}|{X -> 10, Y -> 20}|{x_new -> 10, y_new -> 20}|
# +----------------+----------------+------------------+
 Примечания
- Возвращает NULL, если карта NULL
 - Функция применяется только к ключам, значения остаются без изменений
 - Полезно для:
 - Преобразования ключей карты
 - Нормализации данных
 - Создания новых карт на основе существующих
 - Связанные функции:
 transform_values()- преобразование значений картыmap_filter()- фильтрация элементов карты