其他分享
首页 > 其他分享> > 【难题解决】海量数据求Top K

【难题解决】海量数据求Top K

作者:互联网

一、Top K问题

1、含义

在海量数据找出频率最高的前k个数,或从海量数据中找出最大的前k个数,

2、举例

1、有10个文件,每个文件1GB。文件内每行存放字符串,可能重复,内存限制大小是1MB。按照字符串频度排序;返回频数最高的100个词。

3、实际

// Shopee二面
Datetime,              keyword, count
2021-01-01 08:00:00, toys,     1
2021-01-01 08:01:00, makeup,   2
2021-01-01 08:01:00, cups,     3
2021-01-01 08:02:00, abc,      1
2021-01-01 08:03:00, candy,    5
….

2021-01-01 09:30:00, toys, 2

给定:csv 10T, 1 driver 256 G memory, 512 T storage
求解:top 10 keywords

二、解决

1、好方案:分治+Trie树/Hash+小顶堆

2、其他

1、全排序

2、局部淘汰法

3、分治法

4、Hash法

5、最小堆

三、延申

处理海量数据问题方法:

四、举一反三练习

……

五、参考

1、海量数据中的TOPK问题小结
2、海量数据处理 - 10亿个数中找出最大的10000个数(top K问题)
3、10 亿个数中找出最大的 10000 个数(topK 问题)
4、Top K Problems
5、教你如何迅速秒杀掉:99%的海量数据处理面试题

标签:难题,10,00,01,10000,海量,Top,个数,排序
来源: https://blog.csdn.net/HeavenDan/article/details/120738074