使用secondary sort实现数据关联 完整示例代码

需要进行两种数据的关联, 费了好大劲, 最后才使用secondary sort解决

 

其中有几个地方需要注意:

1 readFields 和 writeFields 的写法需要完全一致, 否则写入和读取的数据就会错乱。 (在此耽搁良久)

2 要override 成员函数hashCode(), 否则“相同”key的数据不一定在唯一的机器上

3 要定义groupbyComparator

 

在reduce操作之前,

------1 会对数据进行partition: RecordKey.hashCode, 该函数会被partitioner调用, 使得数据分配到不同的reduce机器上。 【因此对于我们的需求需要override】

------2 会使用groupbyComparator对数据进行分组:Comparator.compare()

------3 会排序: RecordKey.compareTo()

------4 要设置Comparator

 

 

ps: 自定义了partitioner,Job.setPartitionerClass(class), 但是没起作用。 【0.19.1    0.19.2】, 就是在此耽搁良久, 后来才尝试使用secondary sort

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值