【发布时间】:2019-03-24 16:28:21
【问题描述】:
在我的 Spark Scala 应用程序中,我有一个格式如下的 RDD:
(05/05/2020, (name, 1))
(05/05/2020, (name, 1))
(05/05/2020, (name2, 1))
...
(06/05/2020, (name, 1))
我想做的是按日期对这些元素进行分组,并对与键具有相同“名称”的元组求和。
预期输出:
(05/05/2020, List[(name, 2), (name2, 1)]),
(06/05/2020, List[(name, 1)])
...
为了做到这一点,我目前正在使用groupByKey 操作和一些额外的转换,以便按键对元组进行分组并计算共享相同元组的总和。
出于性能原因,我想将这个groupByKey 操作替换为reduceByKey 或aggregateByKey,以减少通过网络传输的数据量。
但是,我不知道该怎么做。这两种转换都将值之间的函数(在我的例子中为元组)作为参数,所以我看不到如何通过键对元组进行分组以计算它们的总和。
可行吗?
【问题讨论】:
标签: scala apache-spark rdd reduce