unpivot

Dissociez un DataFrame d’un format large au format long, en laissant éventuellement les colonnes d’identificateur définies. Il s’agit de l’inverse, groupBy(...).pivot(...).agg(...)à l’exception de l’agrégation, qui ne peut pas être inversé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)

Paramètres

Paramètre Type Description
ids str, Column, tuple, list Colonnes à utiliser en tant qu’identificateurs. Il peut s’agir d’une seule colonne ou d’un nom de colonne, ou d’une liste ou d’un tuple pour plusieurs colonnes.
values str, Column, tuple, list, optional Colonne(s) à dissocier. Il peut s’agir d’une seule colonne ou d’un nom de colonne, ou d’une liste ou d’un tuple pour plusieurs colonnes. S’il est spécifié, ne doit pas être vide. Si ce n’est pas spécifié, utilise toutes les colonnes qui ne sont pas définies en tant que ids.
variableColumnName str Nom de la colonne variable.
valueColumnName str Nom de la colonne valeur.

Retours

DataFrame: DataFrame non croisé dynamique.

Remarques

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