假设我们有一个Pyspark数据框由三列组成:Department,Employee ID,Salary。每个部门都有几名员工(带有相关的员工ID)。每个员工都有独特的薪水。
我们希望groupBy“Department”然后使用一些聚合函数(agg func)找到该部门的中位数薪水。这里的问题是,SQL函数中没有给出中值函数,所以我们需要自己实现这个函数。
其中一个想法是使用agg func collectList()来收集组(部门)中的所有工资,并编写另一个在列表中查找中位数的UDF。但是,这将非常缓慢。关于计算速度有没有更好的选择。我对Scala没有多少经验,所以一切都应该是Python。
由于