Hadoop经典案例Spark实现(六)——求最大的K个值并排序

本文通过实例讲解如何使用Spark解决Hadoop中的经典问题——找出最大的K个支付值并进行排序。首先展示了数据格式,然后详细介绍了如何利用MapReduce来实现这一功能,重点在于自定义输入类型以实现降序排列。
摘要由CSDN通过智能技术生成
Hadoop经典案例Spark实现(六)——求最大的K个值并排序


一、需求分析

#orderid,userid,payment,productid

求topN的payment值

a.txt
1,9819,100,121
2,8918,2000,111
3,2813,1234,22
4,9100,10,1101
5,3210,490,111
6,1298,28,1211
7,1010,281,90
8,1818,9000,20

b.txt
100,3333,10,100
101,9321,1000,293
102,3881,701,20
103,6791,910,30
104,8888,11,39

预测结果:(求 Top N=5 的结果)
1	9000
2	2000
3	1234
4	1000
5	910

二、MapReduce实现

因为MR默认是升序的因此要自定义输入类型

自定义倒充的整型输入

import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;

import org.apache.hadoop.io.WritableComparable;

public class MyIntWritable implements WritableComparable<MyIntWritable> {
	private Integer num;

	public MyIntWrit
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值