ピボット解除する

データフレームをワイド形式から長い形式にピボット解除し、必要に応じて識別子列を設定したままにします。 これは、集計を除き、 groupBy(...).pivot(...).agg(...)の逆であり、元に戻すことはできません。

Databricks Runtime 11.1 で追加されました

構文

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 識別子として使用する列。 1 つの列または列名、または複数の列のリストまたはタプルを指定できます。
values str、Column、tuple、list、optional ピボット解除する列。 1 つの列または列名、または複数の列のリストまたはタプルを指定できます。 指定する場合は、空にしないでください。 指定しない場合は、 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|
# +---+------+----+