anular dinamização

Despivote um DataFrame de formato wide para formato long, deixando opcionalmente as colunas de identificadores definidas. Isto é o inverso de groupBy(...).pivot(...).agg(...), exceto na agregação, que não pode ser revertida.

Adicionado no Databricks Runtime 11.1

Sintaxe

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

Parâmetros

Parâmetro Tipo Descrição
ids str, coluna, tupla, lista Coluna(s) a usar como identificadores. Pode ser uma única coluna ou nome de coluna, ou uma lista ou tupla para várias colunas.
values str, Column, tuple, list, opcional Coluna(s) para despivar. Pode ser uma única coluna ou nome de coluna, ou uma lista ou tupla para várias colunas. Se especificado, não deve estar vazio. Se não especificado, usa todas as colunas que não estão definidas como ids.
variableColumnName str Nome da coluna da variável.
valueColumnName str Nome da coluna de valor.

Devoluções

DataFrame: DataFrame Não Pivotado.

Notes

Suporta o Spark Connect.

Exemplos

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