メインコンテンツまでスキップ

アンピボット

DataFrameワイド形式からロング形式にアンピボットします。必要に応じて、識別子列はそのまま残します。 これは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)

パラメーター

パラメーター

Type

説明

ids

文字列、列、タプル、リスト

識別子として使用する列。単一の列または列名、あるいは複数の列を指定する場合はリストまたはタプルを指定できます。

values

文字列、列、タプル、リスト、オプション

ピボット解除する列。単一の列または列名、あるいは複数の列を指定する場合はリストまたはタプルを指定できます。指定する場合は、空欄であってはなりません。指定されていない場合は、 idsに設定されていないすべての列を使用します。

variableColumnName

str

変数列の名前。

valueColumnName

str

値列の名前。

戻り値

DataFrame: ピボットされていないDataFrame 。

注意

Spark Connectに対応しています。

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