unpivot
Dépivotez un DataFrame d'un format large à un format long, en option, en conservant les colonnes d'identifiant définies. C’est l’inverse de groupBy(...).pivot(...).agg(...), à l’exception de l’agrégation, qui ne peut pas être annulée.
Ajouté dans Databricks Runtime 11.1
Syntaxe
unpivot(ids: Union["ColumnOrName", List["ColumnOrName"], Tuple["ColumnOrName", ...]], values: Optional[Union["ColumnOrName", List["ColumnOrName"], Tuple["ColumnOrName", ...]]], variableColumnName: str, valueColumnName: str)
parameter
parameter | Type | Description |
|---|---|---|
| str, Column, tuple, liste | Colonne(s) à utiliser comme identifiants. Peut être une seule colonne ou un nom de colonne, ou une liste ou un tuple pour plusieurs colonnes. |
| chaîne, colonne, tuple, liste, facultatif | Colonne(s) à dépivoter. Peut être une seule colonne ou un nom de colonne, ou une liste ou un tuple pour plusieurs colonnes. Si spécifié, ne doit pas être vide. Si non spécifié, utilise toutes les colonnes qui ne sont pas définies comme |
| str | Nom de la colonne de variable. |
| str | Nom de la colonne de valeur. |
Renvoie
DataFrame: DataFrame non pivoté.
Notes
Prend en charge Spark Connect.
Exemples
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|
# +---+------+----+