Unpivot

Usuń przestawienie ramki danych z szerokiego formatu na długi format, opcjonalnie pozostawiając zestaw kolumn identyfikatorów. Jest to odwrotna wartość groupBy(...).pivot(...).agg(...), z wyjątkiem agregacji, której nie można cofnąć.

Dodano w środowisku Databricks Runtime 11.1

Składnia

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

Parametry

Parameter Typ Opis
ids str, Column, tuple, list Kolumny do użycia jako identyfikatory. Może być jedną kolumną lub nazwą kolumny albo listą lub krotką dla wielu kolumn.
values str, Column, tuple, list, optional Kolumny, które mają być przestawne. Może być jedną kolumną lub nazwą kolumny albo listą lub krotką dla wielu kolumn. Jeśli określono wartość , nie może być pusta. Jeśli nie zostanie określony, użyje wszystkich kolumn, które nie są ustawione jako ids.
variableColumnName str Nazwa kolumny zmiennej.
valueColumnName str Nazwa kolumny wartości.

Zwroty

DataFrame: Nie przestawna ramka danych.

Notatki

Obsługuje program Spark Connect.

Examples

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|
# +---+------+----+