在pyspark中,我想计算所有列的不同值及其各自的计数。假设我有下表,我现在正在寻找相应的计数
| A | B | C | D |
|-----|-----|-----|-----|
| A1 | B1 | C1 | D1 |
| A1 | B2 | C1 | D1 |
| A1 | B2 | C2 | D1 |
| A2 | B3 | C2 | D2 |
| A2 | B3 | C2 | D2 |
| A3 | B4 | C3 | D3 |
然后我正在寻找输出
{A1 : 3, A2 : 2, A3 : 1}
{B1 : 1, B2 : 2, B3 : 2, B4 : 1}
{C1 : 2, C2 : 3, C3 : 1}
{D1 : 3, D2 : 2, D3 : 1}
P.S。我可以遍历所有列并为每个列执行df.groupBy('columnname').count()
,但最终要花费很多时间。有没有一种有效的方法可以更好地做到这一点?
此外,请随时使用效果最好的选项-rdd
或data frame