加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – Spark:reduceByKey的自定义键比较方法

发布时间:2020-12-16 18:02:04 所属栏目:安全 来源:网络整理
导读:我需要在 Scala中使用我自己的类作为键/值对中的键.特别是,我有一个简单的类,它包含两个变量id1和id2,我希望元素只基于id2而不是id1进行分组.我在网上找不到有关如何以及在何处覆盖reduceByKey()方法的比较方法的信息,以便它可以根据我的自定义compare()方法
我需要在 Scala中使用我自己的类作为键/值对中的键.特别是,我有一个简单的类,它包含两个变量id1和id2,我希望元素只基于id2而不是id1进行分组.我在网上找不到有关如何以及在何处覆盖reduceByKey()方法的比较方法的信息,以便它可以根据我的自定义compare()方法对具有相同键的元素进行分组.

任何帮助表示赞赏.
谢谢.

解决方法

您无法覆盖reduceByKey的比较,因为它无法使用您的数据经常被整个群集上的单独执行程序上的密钥洗牌的事实.您可以更改密钥(并注意,根据您使用的转换/操作,这可能会重新调整数据周围).

在RDD中有一个很棒的方法来做这个叫做keyBy的方法,所以你可以这样做:

val data: RDD[MyClass] = ...    // Same code you have now.
val byId2 = data.keyBy(_.id2)   //Assuming your ids are Longs,will produce a RDD[(Long,MyClass)]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读