如何在pyspark中找到列的中位数?

How to find median of column in pyspark?

我有一个 spark 数据框

df = 
   a     b     c     d
0  12  12.0   car  bike
1  20  20.5   car  alto
2  15  12.0  bike   car
3  25    25  bike  jeep

我想找到列 'a' 的中位数。我找不到找到中位数的合适方法,所以使用正常的 python NumPy 函数来查找中位数,但我收到如下错误:-

import numpy as np
median = df['a'].median()

错误:-

TypeError: 'Column' object is not callable

预期输出:-

17.5

你可以这样使用precentile_approx,

df.agg(F.expr("percentile_approx('a', 0.5)")).show()