gpt4 book ai didi

scala - Apache Spark RDD 中每个唯一键的总和值

转载 作者:行者123 更新时间:2023-12-02 00:38:11 24 4
gpt4 key购买 nike

我有一个 RDD[(String, (Long, Long))] 其中每个元素都不是唯一的:

(com.instagram.android,(2,0))
(com.android.contacts,(6,1))
(com.android.contacts,(3,4))
(com.instagram.android,(8,3))
...

所以我想获得一个 RDD,其中每个元素都是每个唯一键的两个值的总和:

(com.instagram.android,(10,3))
(com.android.contacts,(9,5))
...

这是我的代码:

val appNamesAndPropertiesRdd = appNodesRdd.map({
case Row(_, appName, totalUsageTime, usageFrequency, _, _, _, _) =>
(appName, (totalUsageTime, usageFrequency))
})

最佳答案

使用reduceByKey:

val rdd = appNamesAndPropertiesRdd.reduceByKey(
(acc, elem) => (acc._1 + elem._1, acc._2 + elem._2)
)

reduceByKey 使用了 SCouto 描述的 aggregateByKey,但具有更易读的用法。对于您的情况,aggregateByKey 的更高级功能 - 被 reduceBykey 的简单 API 隐藏 - 不是必需的

关于scala - Apache Spark RDD 中每个唯一键的总和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48441483/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com