首页 > 解决方案 > 在 pySpark 中旋转

问题描述

我有一个数据框:

student_id class score
1 A 6
1 B 7
1 C 8

我想将class分数分成 3 列,所以上面的数据框应该变成:

student_id class_A_score class_B_score class_C_score
1 6 7 8

这个想法是转换A B C成3列。

标签: pyspark

解决方案


这是枢轴的经典例子。在 pyspark 中,如果df是您的数据框:

new_df = df.groupBy(['student_id']).pivot('class').sum(score)

Databricks 在https://databricks.com/blog/2016/02/09/reshaping-data-with-pivot-in-apache-spark.html上有很好的说明


推荐阅读