使用scala将键、列表(值)减少为键、值

使用scala将键、列表(值)减少为键、值,scala,apache-spark,Scala,Apache Spark,嗨,我是apache spark和scala的新手。我正在努力改变信仰 数组'a',1',b',1,1',c',1到数组'a',1',b',2',c',1 你能帮我转换一下吗。由于问题中没有具体类型,我假设数组中的值分别是Char和Int元组。以下是我们如何转换到所需输出: scala> val a = Array(('a',1), ('b',(1,1)), ('c',1)) a: Array[(Char, Any)] = Array((a,1), (b,(1,1)), (c,1)) s

嗨,我是apache spark和scala的新手。我正在努力改变信仰 数组'a',1',b',1,1',c',1到数组'a',1',b',2',c',1


你能帮我转换一下吗。

由于问题中没有具体类型,我假设数组中的值分别是Char和Int元组。以下是我们如何转换到所需输出:

scala> val a = Array(('a',1), ('b',(1,1)), ('c',1))
a: Array[(Char, Any)] = Array((a,1), (b,(1,1)), (c,1))

scala> a map { case (first, second) => (first, second match { case p: Product =>  Tuple1(p.productIterator.map(_.asInstanceOf[Int]).reduce(_ + _)); case _=> second }) }
res27: Array[(Char, Any)] = Array((a,1), (b,(2,)), (c,1))
基本上,我们可以使用productIterator遍历元组中的元素。我们还需要将每个值映射到一个整数,以便计算总和


再看看这个问题:

你的意思可能是‘Arraya,List1,b,List1,1,c,List1’?如果不是,你的输入应该是什么类型的?那里没有火花-所有的数组,可能还有列表。请说清楚点,b,2是什么意思?b,2不是更好吗?更新了我的问题。很抱歉给你带来了混乱