pyspark如何有效地进行这种转换? [重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pyspark如何有效地进行这种转换? [重复]相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
我是pyspark的新手,只知道它最简单的操作。我的英语非常糟糕,对不起,我无法详细描述,以下是样本!谢谢你的回答
- 像这样的数据帧:
| name | id | flag | cnt |
| li | 19196 | true | 10 |
| li | 19196 | false | 15 |
- 我想将其转换为:
| name | id | flag_true | flag_false |
| li | 19196 | 10 | 15 |
答案
您可以使用数据透视表:
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|
+----+-----+----------+---------+
以上是关于pyspark如何有效地进行这种转换? [重复]的主要内容,如果未能解决你的问题,请参考以下文章