繁体   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