如何在scala中将元组简化为元组的元组
我有RDD类型的行如何在scala中将元组简化为元组的元组,scala,apache-spark,Scala,Apache Spark,我有RDD类型的行 (a,(b,c,d)) (a,(e,f,g)) (a,(b,c,d),(e,f,g)). 我试图通过键来减少它,以便它产生类型为的行 (a,(b,c,d)) (a,(e,f,g)) (a,(b,c,d),(e,f,g)). 但我在使用时遇到了一个错误: val redcd = mapd.reduceByKey((_,_)) 我该怎么做?如果您有RDDas scala> mapd.foreach(println) (a,(b,c,d)) (a,(e,f,
(a,(b,c,d))
(a,(e,f,g))
(a,(b,c,d),(e,f,g)).
我试图通过键来减少它,以便它产生类型为的行
(a,(b,c,d))
(a,(e,f,g))
(a,(b,c,d),(e,f,g)).
但我在使用时遇到了一个错误:
val redcd = mapd.reduceByKey((_,_))
我该怎么做?如果您有
RDD
as
scala> mapd.foreach(println)
(a,(b,c,d))
(a,(e,f,g))
(b,(b,c,d))
然后做
val redcd = mapd.groupBy(_._1).mapValues(x => x.map(_._2).toList)
我会给你
scala> redcd.foreach(println)
(b,List((b,c,d)))
(a,List((b,c,d), (e,f,g)))
现在,如果您希望它的格式有问题,您可以这样做
val redcd = mapd.groupBy(_._1).mapValues(x => x.map(_._2).toList.mkString(", "))
这将产生
scala> redcd.foreach(println)
(a,(b,c,d), (e,f,g))
(b,(b,c,d))
我希望答案有帮助有什么错误?