hadoop 单词筛选 top-k问题

本文介绍如何利用Hadoop MapReduce框架解决找出文本中出现频率最高的10个单词的问题。首先,通过MapReduce完成单词计数,然后利用InverseMapper进行键值对反转,接着自定义降序排序类IntWritableDecreasingComparator,最后通过一个自定义map类实现Top-K选择。代码示例详细展示了整个流程。
摘要由CSDN通过智能技术生成

      最近开始学习hadoop(hadoop 以下简称hd),在完成了hd的环境搭建之后,就开始试着跑那些原始例子,比如其中的wordcount,统计文章中各单词的出现频率。由于本人还在念书,在我们这学期开设的软件工程课上,老师布置了一道题。如下:

    请实现程序:筛选出文章中出现频率最高的10个词语。文件大小30k--300k.

    一看这题,我立马想到了hd去实现,这300k的数据简直不够塞牙缝,由于本人是新手,就在网上找资料,不料,都没有能完全满足要求的代码。但是本人发现了解决topK问题的方法。并且通过编程,和娄哥的帮助,实现了top10问题,以此与众新手分享。

    ps:本程序是在wordcount基础上修改的,并且用的是hd的老mapreduce框架。(mapreduce以下简称mapred)

    大致思想是将多个mapred连接起来,将复杂任务分解成一些简单的子任务,每个均需通过单独的mapred作业来完成。

    首先,按照mapred框架,在第一次完成mapred之后,每个单词出现的频率会被统计,并且成 键值对(key/value)形式(单词 /次数),reduce之后,单词会成升序进行排序。

    由于mapred

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值