我想取消透視如下所示的資料框:
Col1 Col2 Val1 Val2
abc def 12 75
ghi jkl 67 86
... ... .. ..
變成這樣的東西:
Col1 Col2 NewCol Val
abc def KEY1 12
abc def KEY2 75
ghi jkl KEY1 67
ghi jkl KEY2 86
... ... .... ..
我對 python 很陌生,但我知道 pyspark 中沒有 unpivot 函式。知道如何實作這一點嗎?非常感謝!
uj5u.com熱心網友回復:
鑒于您提供的資料框,可以使用:
from pyspark.sql import functions as F
df.select(
F.col("Col1"),
F.col("Col2"),
F.explode(
F.map_from_arrays(
F.array(F.lit("key1"), F.lit("key2")),
F.array(F.col("val1"), F.col("val2"))
)
)
)
只要您保持鍵和值的順序,就可以了
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/410845.html
標籤:
下一篇:Pyspark中的正則運算式
