を理解しようとしている私は、特定のキーに関連付けられたすべての値の平均値を見つけたいと下記の私のプログラムである:以下reduceByKey()アクションの動作
from pyspark import SparkContext,SparkConf
conf = SparkConf().setAppName("averages").setMaster("local")
sc = SparkContext(conf=conf)
file_rdd = sc.textFile("C:\spark_programs\python programs\input")
vals_rdd = file_rdd.map(lambda x:(x.split(" ")[0],int(x.split(" ")[2])))
print type(vals_rdd)
pairs_rdd = vals_rdd.reduceByKey(lambda x,y:(x+y)/2)
for line in pairs_rdd.collect():
print line
は、入力データである:
私はプログラム私が手に出力を実行
a hyd 2
b hyd 2
c blr 3
d chn 4
b hyd 5
は以下の通りです:Bの値aから離れ
(u'a', 2)
(u'c', 3)
(u'b', 3) -- I could see only got b's value getting averaged.
(u'd', 4)
値は平均化されません。それはなぜ起こるのですか?なぜa、c、dの値は平均化されていないのですか?