簡體   English   中英

使用新列在 Pyspark 中取消旋轉 dataframe

[英]Unpivot dataframe in Pyspark with new column

我想取消旋轉看起來像這樣的 dataframe:

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 function .. 知道我怎么能做到這一點嗎? 非常感謝!

鑒於您提供的 Dataframe,可以使用:

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"))
    )
  )
)

只要您保持鍵和值的順序,就可以了

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM