Aller au contenu principal

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

ids

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.

values

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 ids.

variableColumnName

str

Nom de la colonne de variable.

valueColumnName

str

Nom de la colonne de valeur.

parameter

Type

Description

ids

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.

values

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 ids.

variableColumnName

str

Nom de la colonne de variable.

valueColumnName

str

Nom de la colonne de valeur.

Renvoie

DataFrame: DataFrame non pivoté.

Notes

Prend en charge Spark Connect.

Exemples

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