Apakah mungkin menemukan median dalam percikan secara terdistribusi? Saat ini saya menemukan: Sum
, Average
, Variance
, Count
menggunakan kode berikut:
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)))
Saya tidak begitu yakin bagaimana menemukan Median. Untuk mencari simpangan baku saya hanya melakukan hasilnya secara lokal dengan varians akar kuadrat. Setelah saya mengumpulkan median, saya juga dapat dengan mudah melakukan Skewness secara lokal.
Saya memiliki data saya dalam pasangan Kunci/Nilai (kunci = kolom)