如何在Pyspark中从一个数据框转换行到列到另一个数据框

huangapple go评论56阅读模式
英文:

How to achieve rows to columns from one data frame to another data frame in Pyspark

问题

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

如何在Pyspark中从一个数据框转换行到列到另一个数据框

如何在Pyspark中从一个数据框转换行到列到另一个数据框

英文:

How to achieve this through pyspark using any of the functions to use in notebooks of Azure Synapse?

如何在Pyspark中从一个数据框转换行到列到另一个数据框

如何在Pyspark中从一个数据框转换行到列到另一个数据框

答案1

得分: 1

尝试使用pivot + groupBy + agg()函数来处理这种情况。

示例:

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   |
#+-----+-------+-------+
英文:

Try with pivot + groupBy + agg() function for this case.

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

If you need the output column names in specific format then use toDF() to change the column names.

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

huangapple
  • 本文由 发表于 2023年5月20日 20:48:47
  • 转载请务必保留本文链接:https://go.coder-hub.com/76295305.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定