我正在寻找一种在 PySpark 中重现 SAS Proc Freq 代码的方法。我发现这段代码正是我需要的。但是,它是在 Pandas 中给出的。我想确保它确实使用了 Spark 所能提供的最好的东西,因为代码将与大量数据集一起运行。在另一篇文章(也适用于这个 StackOverflow 答案)中,我还找到了在 PySpark 中计算分布式分组累积和的指令,但不知道如何适应我的目的。
这是一个输入和输出示例(我的原始数据集将有数十亿行):
输入数据集:
state
0 Delaware
1 Delaware
2 Delaware
3 Indiana
4 Indiana
... ...
1020 West Virginia
1021 West Virginia
1022 West Virginia
1023 West Virginia
1024 West Virginia
1025 rows × 1 columns
预期输出:
state Frequency Percent Cumulative Frequency Cumulative Percent
0 Vermont 246 24.00 246 24.00
1 New Hampshire 237 23.12 483 47.12
2 Missouri 115 11.22 598 58.34
3 North Carolina 100 9.76 698 68.10
4 Indiana 92 8.98 790 77.07
5 Montana 56 5.46 846 82.54
6 West Virginia 55 5.37 901 87.90
7 North Dakota 53 5.17 954 93.07
8 Washington 39 3.80 993 96.88
9 Utah 29 2.83 1022 99.71
10 Delaware 3 0.29 1025 100.00