我是pyspark的新手,刚知道它最简单的操作。我的英语很不好,对不起,我无法详细描述,以下是示例!谢谢你的回答
| name | id | flag | cnt |
| li | 19196 | true | 10 |
| li | 19196 | false | 15 |
| name | id | flag_true | flag_false |
| li | 19196 | 10 | 15 |
答案 0 :(得分:3)
您可以为此使用数据透视表:
df.groupBy(['name', 'id'])\
.pivot('flag')\
.agg(f.sum('cnt'))\
.withColumnRenamed('true', 'flag_true')\
.withColumnRenamed('false', 'flag_false')\
.show()
打印:
+----+-----+----------+---------+
|name| id|flag_false|flag_true|
+----+-----+----------+---------+
| li|19196| 15| 10|
+----+-----+----------+---------+