如何在JavaPairRDD Java Spark中计算密钥的实例



为了详细说明我所陷入的困境或不确定如何处理,我目前有一个JavaPairRDD"媒体";它包含两个整数值,一个followed id和一个follow id;媒体";。问题是,每个键的值都是另一个id,而不仅仅是值1。话虽如此,我尝试使用.mapToPair并提取键值来创建一个新的元组2<gt;(p._1,1(,其中每个键现在将保持值1,以使计数过程更容易。然后我使用reduceByKey((进行后续操作,但我一直收到一个错误,我不太确定如何将新的JavaPairRDD返回为<id,计数>。附件是我迄今为止写的一些代码:

JavaPairRDD<Integer, Integer> socials = 
media.mapToPair(p -> new Tuple2<>(p._1, 1))
.reduceByKey(p2 -> p._1 + p._2);

假设您有以下RDD<Int,Int>元组:

(4,5)
(1,7)
(1,3)
(3,4)
(2,3)
(1,2)

据我所知,你想计算key重复了多少次,因此结果应该是这样的:

1, 3
2, 1
3, 1
4, 1

如果这是你想要的,你可以通过:

media.map(x => x._1).countByValue()

祝你好运!

最新更新