Hadoop经典的wordcount, 如何只输入单词频率出现最高的单词呢? 能否给个思路呀
你可以看一下这篇文章中的mapreducer编程中的最大值和最小值http://hainiubl.com/topics/92
@青牛 老师, 不按照你的那种输入方式行吗,就普通格式的
@HiHadoop 可以的你就用TextInputFormat就行
@青牛 老师,如果自定义输入类型,那单词key就应该包含单词 单词出现次数,但是,这个单词出现次数应该怎么获得呢?
@HiHadoop 这个频次你可以用wordcount进行统计,比如给你一组词 a a a b 你应该先写一个mapreducer的wordcount统计其中a出现3次,b出现1次, 然后再写一个mapreducer依赖wordcount这个mapreducer,弄个自定义的key里面包含词和count的词,并定义好比较的方法,利用shuffle过程中排序的原理统计出其中频次最高的那个词
@青牛 老师,这个和给你一堆专利信息,让你统计计算出哪一年份或者哪一个国家的专利信息最多的道理是一样的
@HiHadoop 恩,道理都是一样的
@青牛 老师,这个程序没办法用一个mapreduce来处理,只能来两个吗😂😂😂
@HiHadoop mapreduce的话需要两步,spark的话比较好做map->countByKey->sort->top就完事了
@青牛 好的,老师谢谢您。学习到了好多知识
@HiHadoop 关注我们社区,我们这里有一大堆大数据相关知识
@青牛 好的,已经准备好好学了,我的专业也是大数据这块,我新手。
@青牛 老师,您那个求全局的算法中,为什么要在map中统计局部最大值啊,如果只输出最后一个,那岂不是传入reduce的只有一条记录了吗
@HiHadoop@青牛 这样岂不是经历了三次排序,map的局部,suffer的自动,reduce的又一次排序吗
@HiHadoop 你要想会有N个map所以到reducer中的记录不会是一个。到reducer中只拿每个map的最大值,可以减少网络数据的传输 reduce的排序在suffer的环节中
`单行代码`
关注海汼部落