首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于指定值元素的ReduceByKey

关于指定值元素的ReduceByKey
EN

Stack Overflow用户
提问于 2016-11-21 16:41:20
回答 1查看 2.1K关注 0票数 2

新的火花,并试图理解reduceByKey,这是指定接受RDD(K,V)。我不清楚的是,当值是list/tuple时,如何应用这个函数.

在各种映射和筛选操作之后,我的RDD以(Cluster:String, (Unique_ID:String, Count:Int))的形式结束,其中我可以有许多属于同一个集群的元素,例如:

代码语言:javascript
复制
 Array((a,(lkn,12)), (a,(hdha,2)), (a,(naa,35)), (b, (cdas,20)) ...)

现在,我想使用reduceByKey为每个集群查找计数最高的元素(因此每个集群有一个条目)。在上面的示例中,这将是集群(a,(naa,35)) a

如果我在reduceByKeymath.max中有一个简单的(键,值)对,我可以知道如何找到每个集群的最大值。但是,当值表示值的列表/元组时,我不明白如何扩展它。

我用错函数了吗?

EN

Stack Overflow用户

回答已采纳

发布于 2016-11-21 16:46:15

您可以:

代码语言:javascript
复制
rdd.reduceByKey { case (x, y) => if (x._2 > y._2) x else y }

这是:

  • 从逻辑上将数据划分为密钥定义的组(_._1)
代码语言:javascript
复制
- Keys for "a": `(a, [(lkn,12), (hdha,2), (naa,35), ...])`
- Keys for "b": `(b, [(cdas,20), ...])`

  • 通过比较第二个值元素((x._2 > y._2))来减少每个组中的值,并返回一个具有较高数目的值。
票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40725125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档