Freigeben über


Unpivot

Heben Sie das Pivotieren eines DataFrame von breitem Format in ein langes Format auf, und lassen Sie optional bezeichnerspalten festgelegt. Dies ist umgekehrt zu groupBy(...).pivot(...).agg(...), mit Ausnahme der Aggregation, die nicht umgekehrt werden kann.

Hinzugefügt in Databricks Runtime 11.1

Syntax

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

Parameter

Parameter Typ Beschreibung
ids str, Spalte, Tupel, Liste Spalten, die als Bezeichner verwendet werden sollen. Kann ein einzelner Spalten- oder Spaltenname oder eine Liste oder ein Tupel für mehrere Spalten sein.
values str, Spalte, Tupel, Liste, optional Spalte(n) zum Aufheben des Pivotierens. Kann ein einzelner Spalten- oder Spaltenname oder eine Liste oder ein Tupel für mehrere Spalten sein. Wenn angegeben, darf nicht leer sein. Wenn nicht angegeben, werden alle Spalten verwendet, die nicht als idsfestgelegt sind.
variableColumnName str Name der Variablenspalte.
valueColumnName str Name der Wertspalte.

Rückkehr

DataFrame: Unpivoted DataFrame.

Hinweise

Unterstützt Spark Connect.

Beispiele

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