将数据帧从宽格式撤消为长格式,可以选择保留设置标识符列。 这是相反的 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|
# +---+------+----+