Pyspark Dataframe pivot 和 groupby 计数
Pyspark Dataframe pivot and groupby count
我正在处理如下所示的 pyspark 数据框
id
category
1
A
1
A
1
B
2
B
2
A
3
B
3
B
3
B
我想拆开类别列并计算它们的出现次数。所以,我想要的结果如下图
id
A
B
1
2
1
2
1
1
3
Null
3
我尝试在互联网上寻找可以帮助我的东西,但我找不到任何可以给我这个特定结果的东西。
试试这个——(不确定是否优化)
df = spark.createDataFrame([(1,'A'),(1,'A'),(1,'B'),(2,'B'),(2,'A'),(3,'B'),(3,'B'),(3,'B')],['id','category'])
df = df.groupBy('id','category').count()
df.groupBy('id').pivot('category').sum('count').show()
简短版本,不必进行多个分组
df.groupBy("id").pivot("category").count().show()
我正在处理如下所示的 pyspark 数据框
id | category |
---|---|
1 | A |
1 | A |
1 | B |
2 | B |
2 | A |
3 | B |
3 | B |
3 | B |
我想拆开类别列并计算它们的出现次数。所以,我想要的结果如下图
id | A | B |
---|---|---|
1 | 2 | 1 |
2 | 1 | 1 |
3 | Null | 3 |
我尝试在互联网上寻找可以帮助我的东西,但我找不到任何可以给我这个特定结果的东西。
试试这个——(不确定是否优化)
df = spark.createDataFrame([(1,'A'),(1,'A'),(1,'B'),(2,'B'),(2,'A'),(3,'B'),(3,'B'),(3,'B')],['id','category'])
df = df.groupBy('id','category').count()
df.groupBy('id').pivot('category').sum('count').show()
简短版本,不必进行多个分组
df.groupBy("id").pivot("category").count().show()