【发布时间】:2019-02-13 16:19:46
【问题描述】:
这个问题是关于使用 scala 的 spark 中的 groupByKey()。
考虑以下数据
Name,marks,value
Chris,30,1
Chris,35,1
Robert,12,1
Robert,20,1
在rdd下面创建
val dataRDD = sc.parallelize(List(("Chris",30,1),("Chris",35,1),("Robert",12,1),("Robert",20,1)))
我正在尝试创建这样的键值对
val kvRDD = dataRDD.map(rec=> (rec._1, (rec._2,rec._3)))
现在我想要两个值的总和。
val sumRDD = kvRDD.groupByKey().map(rec => (rec._1,(rec._2._1.sum, rec._2._2.sum)))
但是,我面临以下错误。
<console>:28: error: value _2 is not a member of Iterable[(Int, Int)]
我们不能使用groupByKey 达到要求吗?
【问题讨论】:
标签: scala apache-spark rdd