Вот код для вашего logi c, который принимает список кортежей в качестве входных данных и возвращает значение Map со списком ключей и значений.
import scala.collection.immutable._
//function which accepts List of Tuples and returns Map
def convertListToMap(inputParam:List[(String, Int)]) : Map[String,List[Int]]={
inputParam.groupBy(_._1).mapValues(_.map(_._2))
}
//List of Tuples as inputs
val input=List(("a1",1),("a1",2),("b1",3),("c1",2),("c1",3),("c1",4))
//List((a1,1), (a1,2), (b1,3), (c1,2), (c1,3), (c1,4))
//invoking convertListToMap
convertListToMap(input)
//Output: Map(a1 -> List(1, 2), c1 -> List(2, 3, 4), b1 -> List(3))
// remaining logic to proceed further