我有一个Seq(字符串),如下所示,我需要按键减少
val sq = Seq("a:5", "b:6", "c:10", "a:12", "c:8", "b:11")
我不想使用parallelize,因为我必须为数据集中的每条记录执行此操作。我需要如下结果,键的总和,我选择最大键值。
result: Seq("c:18")
提前致谢
答案 0 :(得分:1)
sq.map{ str =>
val Array(k, v) = str.split(":")
(k, v.toInt)
}.groupBy(_._1).map{ case (k, kvs) =>
(k, kvs.map(_._2).sum)
}.maxBy(_._2)
(String, Int)
对(第一个map
)groupBy
)map
)maxBy
)