pyspark - 在 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 中,如果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上有很好的说明
推荐阅读
- haskell - 如何在 Haskell 中使用来自不同类型 monad 的值
- c - PGI 编译器的 OpenACC 性能不佳
- amazon-web-services - 将 N 行分布到 m 个实例
- node.js - 使用 AWS Lambda 使用 ejs 无服务器主机进行 Express
- assembly - 如果 x86-64 中没有兼容模式开关,我是否保证不会遇到非 64 位指令?
- python - 使用 mss 和 openCV 捕获监视器
- json - MongoDB - 使用 mongoimport 导入 JSON 数据失败
- node.js - BigQuery 如何从本地文件加载数据作为内容
- javascript - 对同一个 Promise 进行并发 await 调用,等待第一个调用只完成一次
- android - 在项目选择的侦听器上初始化(自定义微调器适配器)