pyspark-有效地对多个列进行value_counts

时间:2019-11-03 21:50:26

标签: python pyspark

在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(),但最终要花费很多时间。有没有一种有效的方法可以更好地做到这一点?

此外,请随时使用效果最好的选项-rdddata frame

0 个答案:

没有答案