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
答案 0 :(得分:2)
如果您的目标只是为每两个值打印计数,那么您可以这样做:
rdd=sc.parallelize(t);
rdd.map(x=>( x, 1) ).reduceByKey(_+_).map(x => x._1._1+":"+x._1._2+":"+x._2 )