【发布时间】:2020-09-12 06:44:19
【问题描述】:
有没有办法使用 groupBy 子句或某种聚合方法从 pyspark 中的 spark.mllib 库中应用 KS 测试?
例如,我有一个数据框df,其中包含ID 和RESULT 列,如下所示:
+-------+------+
| ID|RESULT|
+-------+------+
|3648296| 2.73|
|3648296| 9.64|
|3648189| 0.03|
|3648189| 0.03|
|3648296| 2.51|
|3648189| 0.01|
|3648296| 1.75|
|3648296| 30.23|
|3648189| 0.02|
|3648189| 0.02|
|3648189| 0.02|
|3648296| 3.28|
|3648296| 32.55|
|3648296| 2.32|
|3648296| 34.58|
|3648296| 29.22|
|3648189| 0.02|
|3648296| 1.36|
|3648296| 1.64|
|3648296| 1.17|
+-------+------+
有 2 个IDs 3648296 和 3648189,它们对应的每个 RESULT 值都在几十万左右。
是否可以像这样应用 groupBy 函数:
from pyspark.mllib.stat import Statistics
normtest=df.groupBy('ID').Statistics.kolmogorovSmirnovTest(df.RESULT, "norm", 0, 1)
这样我得到一个输出数据框,如:
+-------+---------+----------+
| ID|p-value |statistic |
+-------+---------+----------+
|3648296|some val | some val |
|3648189|some val | some val |
+-------+---------+----------+
这可能吗?
【问题讨论】:
-
您能找到解决方案吗?
-
不,我没有,我不得不大幅减少我的数据集并使用熊猫,这违背了目的。您对此有解决方案吗?
-
我实际上设法使用分箱为此设计了一个解决方案。我会在这里发布。
标签: pyspark apache-spark-mllib kolmogorov-smirnov