Compartilhar via


transformar colunas em linhas

Descompacte um DataFrame de formato largo para formato longo, opcionalmente deixando as colunas do identificador definidas. Esse é o inverso para groupBy(...).pivot(...).agg(...), exceto para a 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 Colunas a serem usadas como identificadores. Pode ser um único nome de coluna ou coluna ou uma lista ou tupla para várias colunas.
values str, Coluna, tupla, lista, opcional Coluna(s) a ser despivota. Pode ser um único nome de coluna ou coluna ou uma lista ou tupla para várias colunas. Se especificado, não deve estar vazio. Se não for especificado, usará todas as colunas que não estão definidas como ids.
variableColumnName str Nome da coluna de variável.
valueColumnName str Nome da coluna de valor.

Devoluções

DataFrame: DataFrame não dinâmico.

Observações

Dá suporte ao 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|
# +---+------+----+