如何使用mapPartitions实现下面的地图逻辑?

时间:2015-12-10 06:30:16

标签: scala apache-spark mapreduce

这是我使用map的scala代码,我需要使用mapPartitions编写这两行代码。数据位于底部。

val deckofcardsRDD=sc.textFile("/user/root/decks/deckofcards.txt")
deckofcardsRDD.map(card => card.split("\\|")(2)).countByValue().toList.sortBy(_._1).foreach(println)

输出

(2,4)
(3,4)
(4,4)
(5,4)

数据

BLACK|CLUB|2
BLACK|CLUB|3
BLACK|CLUB|4
BLACK|CLUB|5
BLACK|SPADE|2
BLACK|SPADE|3
BLACK|SPADE|4
BLACK|SPADE|5
RED|HEART|2
RED|HEART|3
RED|HEART|4
RED|HEART|5
RED|DIAMOND|2
RED|DIAMOND|3
RED|DIAMOND|4
RED|DIAMOND|5

1 个答案:

答案 0 :(得分:0)

我能找到答案。

以下是代码段。

val deckofcardsRDD=sc.textFile("/user/root/decks/deckofcards.txt", 13)
deckofcardsRDD.mapPartitions(card => card.map(item => item.split("\\|")(2))).countByValue().toList.sortBy(_._1).foreach(println)