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 |
|---|---|---|
| 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. |
| 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 |
| str | Nome da coluna de variáveis. |
| str | Nome da coluna de valores. |
Devoluções
DataFrame: DataFrame não pivotado.
Notas
Compatível com 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|
# +---+------+----+