unpivot

Отмена сводки кадра данных из широкого формата в длинный формат, при необходимости оставляя набор столбцов идентификаторов. Это обратное groupBy(...).pivot(...).agg(...)значение, за исключением агрегирования, которое нельзя отменить.

Добавлено в Databricks Runtime 11.1

Синтаксис

unpivot(ids: Union["ColumnOrName", List["ColumnOrName"], Tuple["ColumnOrName", ...]], values: Optional[Union["ColumnOrName", List["ColumnOrName"], Tuple["ColumnOrName", ...]]], variableColumnName: str, valueColumnName: str)

Параметры

Параметр Тип Описание
ids str, Column, кортеж, list Столбцы для использования в качестве идентификаторов. Может быть одним столбцом или именем столбца, списком или кортежем для нескольких столбцов.
values str, Column, кортеж, list, необязательный Столбцы для отмены сводных данных. Может быть одним столбцом или именем столбца, списком или кортежем для нескольких столбцов. Если задано, не должно быть пустым. Если не указано, использует все столбцы, которые не заданы как ids.
variableColumnName str Имя столбца переменной.
valueColumnName str Имя столбца значений.

Возвраты

DataFrame: не сводный кадр данных.

Примечания

Поддерживает Spark Connect.

Примеры

df = spark.createDataFrame(
    [(1, 11, 1.1), (2, 12, 1.2)],
    ["id", "int", "double"],
)
df.show()
# +---+---+------+
# | id|int|double|
# +---+---+------+
# |  1| 11|   1.1|
# |  2| 12|   1.2|
# +---+---+------+

from pyspark.sql import functions as sf
df.unpivot(
    "id", ["int", "double"], "var", "val"
).sort("id", sf.desc("var")).show()
# +---+------+----+
# | id|   var| val|
# +---+------+----+
# |  1|   int|11.0|
# |  1|double| 1.1|
# |  2|   int|12.0|
# |  2|double| 1.2|
# +---+------+----+