Я использую эту формулу, взятую из другого поста SO, для вычисления средних значений столбцов в pyspark:
columns = ['id', 'dogs', 'cats']
vals = [(1, 2, 0),(2, 0, 1)]
df = sqlContext.createDataFrame(vals, columns)
df.approxQuantile(list(c for c in df.columns), [0.5], 0)
Формула работает, когда в df есть нечетное количество строк, но если числоколичество строк четное, оно не принимает среднее значение между центральными элементами (я имею в виду после сортировки, конечно), а только первое.
Например, результат из приведенного выше кода:
[[1.0], [0.0], [0.0]]
в то время как должно было быть:
[[1.5], [1.0], [0.5]]
Как правильно рассчитать медианное значение в pyspark?