如何找到部门[PySPark]员工的工资中位数?

时间:2018-04-16 07:09:55

标签: apache-spark pyspark aggregate-functions median

假设我们有一个Pyspark数据框由三列组成:Department,Employee ID,Salary。每个部门都有几名员工(带有相关的员工ID)。每个员工都有独特的薪水。

我们希望groupBy“Department”然后使用一些聚合函数(agg func)找到该部门的中位数薪水。这里的问题是,SQL函数中没有给出中值函数,所以我们需要自己实现这个函数。

其中一个想法是使用agg func collectList()来收集组(部门)中的所有工资,并编写另一个在列表中查找中位数的UDF。但是,这将非常缓慢。关于计算速度有没有更好的选择。我对Scala没有多少经验,所以一切都应该是Python。

由于

0 个答案:

没有答案