scala 对相同key下 ,相同的value只保留一条
时间: 2024-03-05 18:49:38 浏览: 86
在Scala中,可以使用`groupBy`和`mapValues`方法来实现对相同key下,相同的value只保留一条的操作。具体实现方法如下:
```scala
val data = List(("key1", "value1"), ("key1", "value1"), ("key1", "value2"), ("key2", "value1"), ("key2", "value2"))
val result = data.groupBy(_._1) // 按key分组
.mapValues(_.map(_._2).distinct) // 对每组的value去重
println(result) // 输出结果:Map(key1 -> List(value1, value2), key2 -> List(value1, value2))
```
在上面的代码中,首先使用`groupBy`方法按key对数据进行分组,得到一个Map类型的结果。然后使用`mapValues`方法对每组的value进行去重,得到最终的结果。
其中`_.map(_._2)`表示对每组数据中的元组进行映射,取出value;`.distinct`表示对取出的value进行去重操作。
阅读全文