逆透视

将数据帧从宽格式撤消为长格式,可以选择保留设置标识符列。 这是相反的 groupBy(...).pivot(...).agg(...),但聚合除外,不能反转。

在 Databricks Runtime 11.1 中添加

Syntax

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

参数

参数 类型 说明
ids str、Column、tuple、list 要用作标识符的 Column(s)。 可以是单个列或列名,也可以是多个列的列表或元组。
values str、Column、tuple、list、optional 列(s) 要逆透视。 可以是单个列或列名,也可以是多个列的列表或元组。 如果指定,则不得为空。 如果未指定,请使用未设置为 ids的所有列。
variableColumnName str 变量列的名称。
valueColumnName str 值列的名称。

退货

DataFrame:未绘制的数据帧。

备注

支持 Spark Connect。

示例

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