下面是PySpark数据框架:
| 类型|子类型|
| - -----|- -----|
| 类型1|亚型1|
| 类型1|亚型1|
| 类型1|亚型1|
| 类型1|亚型2|
| 类型1|亚型3|
| 类型2|亚型1|
| 类型2|亚型1|
| 类型2|亚型2|
| 类型2|亚型2|
| 类型2|亚型2|
| 类型2|亚型3|
| 类型2|亚型3|
| 类型3|亚型1|
| 类型3|亚型1|
我的要求是基于SubType
进行透视,并聚合每个类型的SubType
的计数。我的预期输出是:
| 类型|亚型1|亚型2|亚型3|
| - -----|- -----|- -----|- -----|
| 1型|3|一个|一个|
| 2型|2| 3| 2|
| 第三类|2| 0| 0|
我尝试使用pivot函数,但不知何故聚合没有发生:
df = df \
.groupby(df.Type) \
.pivot("SubType") \
.agg(
F.count('SubType')
)
有人能帮我找到解决办法吗?
1条答案
按热度按时间js81xvg61#
这里的代码(从pandas改为pyspark)你能检查一下它是否适合你吗?
我也测试过。结果如下: