如何在Pyspark中实现从一个数据框到另一个数据框的行到列

tvz2xvvm  于 2023-05-21  发布在  Spark
关注(0)|答案(1)|浏览(98)

如何通过pyspark使用Azure Synapse的笔记本中使用的任何函数来实现这一点?

xuo3flqw

xuo3flqw1#

在这种情况下尝试使用pivot + groupBy + agg()函数。

Example:

from pyspark.sql.functions import *
df = spark.createDataFrame([('1234','VW','1022'),('1234','YH','5466'),('12345','VW','1022'),('12345','YH','5466')],['col1','col2','col3'])

df.groupBy("col1").pivot("col2").agg(first(col("col3"))).show(10,False)
#+-----+----+----+
#|col1 |VW  |YH  |
#+-----+----+----+
#|1234 |1022|5466|
#|12345|1022|5466|
#+-----+----+----+

如果您需要特定格式的输出列名,则使用toDF()更改列名。

df.groupBy("col1").pivot("col2").agg(first(col("col3"))).toDF("col1","col2=VW","col2=YH").show(10,False)
#+-----+-------+-------+
#|col1 |col2=VW|col2=YH|
#+-----+-------+-------+
#|1234 |1022   |5466   |
#|12345|1022   |5466   |
#+-----+-------+-------+

相关问题