Можно ли найти медиану искры распределенным способом? В настоящее время я нахожу: Sum
, Average
, Variance
, Count
, используя следующий код:
dataSumsRdd = numRDD.filter(lambda x: filterNum(x[1])).map(lambda line: (line[0], float(line[1])))\
.aggregateByKey((0.0, 0.0, 0.0),
lambda (sum, sum2, count), value: (sum + value, sum2 + value**2, count+1.0),
lambda (suma, sum2a, counta), (sumb, sum2b, countb): (suma + sumb, sum2a + sum2b, counta + countb))
#Generate RDD of Count, Sum, Average, Variance
dataStatsRdd = dataSumsRdd.mapValues(lambda (sum, sum2, count) : (count, sum, sum/count, round(sum2/count - (sum/count)**2, 7)))
Я не совсем уверен, как найти Median, хотя. Чтобы найти стандартное отклонение, я просто получаю результат локально с дисперсией квадратного корня. Как только я соберу медиану, я смогу легко сделать Skewness локально.
У меня есть данные в парах ключ/значение (ключ = столбец)