问题描述:
有10个文件,每个文件1G,每个文件的每一行存放的都是用户的query,每个文件的query都可能重复。要求你按照query的频度排序。
分析:一般海量数据采用分治法时,都要用到哈希,将相似的数据聚集在一起。因此,本题的第一种解法就按照这个思路进行处理。
方案一:
图上说明的很清楚,就不再用文字描述了。像这种海量数据处理的题目,画图往往比语言描述更清晰易懂。
方案二:
如果query的种类较少,重复次数较多,当不同的query可以一次性加载到内存中时,可以选择HashMap进行统计,然后按出现次数做排序。
其实方案二就是方案一中的第二步,对hash之后的单个文件进行数量统计和内部排序。
参考资料: