2018优就业人保合作
400-650-7353
首页 > IT就业指南 > 面试题 > 【大数据面试题】query的频度排序问题

【大数据面试题】query的频度排序问题

2018-07-12 14:29:34 来源:互联网 手机端入口

在参加工作前最重要的一轮就是大数据的面试,优就业小编分享一道经典的大数据面试题及答案,希望可以帮到准备或者正在参加大数据面试的朋友们。

有10个文件,每个文件1G,每个文件的每一行存放的都是用户的query,每个文件的query都可能重复。要求你按照query的频度排序。

还是典型的TOP K算法,解决方案如下:

方案1:

顺序读取10个文件,按照hash(query)%10的结果将query写入到另外10个文件(记为)中。这样新生成的文件每个的大小大约也1G(假设hash函数是随机的)。

http://www.ujiuye.com/peixun/beijingdashuju.html?wt.yjy=hly59762

找一台内存在2G左右的机器,依次对用hash_map(query, query_count)来统计每个query出现的次数。利用快速/堆/归并排序按照出现次数进行排序。将排序好的query和对应的query_cout输出到文件中。这样得到了10个排好序的文件(记为)。

对这10个文件进行归并排序(内排序与外排序相结合)。

方案2:

一般query的总量是有限的,只是重复的次数比较多而已,可能对于所有的query,一次性就可以加入到内存了。这样,我们就可以采用trie树/hash_map等直接来统计每个query出现的次数,然后按出现次数做快速/堆/归并排序就可以了。

方案3:

与方案1类似,但在做完hash,分成多个文件后,可以交给多个文件来处理,采用分布式的架构来处理(比如MapReduce),最后再进行合并。

相关推荐:

【大数据培训教程】把握时代风口,挑战大数据高薪

【大数据培训班】大数据课程更新迭代,师资匠心研造

北京大数据培训怎么样?北京大数据培训多少钱?

免责声明:本文来源于网络,由网友提供或网络搜集,仅供个人交流学习参考使用,不涉及商业盈利目的。如有版权问题,请联系本站管理员予以更改或删除。谢谢合作!

关键词: 大数据面试题

相关推荐

 
 
咨询中心
优就业微信扫一扫
微信扫一扫

400-650-7353

加入官方微博