Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Avpivot en DataFrame från brett format till långt format, om du vill lämna identifierarkolumner angivna. Det här är omvänd till groupBy(...).pivot(...).agg(...), förutom aggregeringen, som inte kan ångras.
Har lagts till i 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)
Parameters
| Parameter | Type | Beskrivning |
|---|---|---|
ids |
str, Column, tuple, list | Kolumner som ska användas som identifierare. Kan vara ett kolumn- eller kolumnnamn eller en lista eller tuppel för flera kolumner. |
values |
str, Column, tuple, list, optional | Kolumner till unpivot. Kan vara ett kolumn- eller kolumnnamn eller en lista eller tuppel för flera kolumner. Om det anges får det inte vara tomt. Om det inte anges använder du alla kolumner som inte har angetts som ids. |
variableColumnName |
str | Namnet på variabelkolumnen. |
valueColumnName |
str | Namn på värdekolumnen. |
Retur
DataFrame: Opivoterad dataram.
Notes
Stöder Spark Connect.
Exempel
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|
# +---+------+----+