如何groupByKey和计算值的出现coressponsing到spark中的键

时间:2016-01-13 09:07:50

标签: apache-spark spark-streaming

t: Array[(Int, String)] = Array((24210720,s503), (24210742,s500), (24210742,s500), (24210748,s503))

我有一系列键值对。我想通过键减少/ groupby(我不确定使用哪一个)并且希望将coreesponding值作为值计数的映射。应该看起来像

24210720 => {s503 => 1},24210742 => {s500 => 2},24210748 => {S503 =大于1}

所以最后我想打印
24210720:S503:1个
24210742:S500:2
24210748:s503:1

1 个答案:

答案 0 :(得分:2)

如果您的目标只是为每两个值打印计数,那么您可以这样做:

rdd=sc.parallelize(t);
rdd.map(x=>( x, 1) ).reduceByKey(_+_).map(x => x._1._1+":"+x._1._2+":"+x._2 )