Condividi tramite


Unpivot

Annullare ilpivot di un dataframe dal formato wide al formato lungo, lasciando facoltativamente il set di colonne dell'identificatore. Si tratta dell'oggetto inverso a groupBy(...).pivot(...).agg(...), ad eccezione dell'aggregazione, che non può essere invertito.

Aggiunta in Databricks Runtime 11.1

Sintassi

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

Parametri

Parametro Tipo Descrizione
ids str, Column, tuple, list Colonne da usare come identificatori. Può essere una singola colonna o un nome di colonna oppure un elenco o una tupla per più colonne.
values str, Column, tuple, list, optional Colonne da annullare. Può essere una singola colonna o un nome di colonna oppure un elenco o una tupla per più colonne. Se specificato, non deve essere vuoto. Se non specificato, usa tutte le colonne non impostate come ids.
variableColumnName str Nome della colonna della variabile.
valueColumnName str Nome della colonna del valore.

Restituzioni

DataFrame: dataframe senzapivot.

Note

Supporta Spark Connect.

Examples

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