Pular para o conteúdo principal

desagrupar

Despivotar um DataFrame do formato amplo para o formato longo, opcionalmente mantendo as colunas de identificadores definidas. Isso é o inverso de groupBy(...).pivot(...).agg(...), exceto pela 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 serem usadas como identificadores. Pode ser uma única coluna ou nome de coluna, ou ainda uma lista ou tupla para múltiplas colunas.

values

str, Coluna, tupla, lista, opcional

Coluna(s) a serem desagrupadas. Pode ser uma única coluna ou nome de coluna, ou ainda uma lista ou tupla para múltiplas colunas. Se especificado, não pode estar vazio. Se não for especificado, usa todas as colunas que não estão definidas como ids.

variableColumnName

str

Nome da coluna de variáveis.

valueColumnName

str

Nome da coluna de valores.

Devoluções

DataFrame: DataFrame não pivotado.

Notas

Compatível com Spark Connect.

Exemplos

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