借鉴:https://blog.csdn.net/qq_46514118/article/details/123635332
https://blog.csdn.net/wcfcangzhuo/article/details/111745837
https://blog.csdn.net/jiuzhang_ninechapter/article/details/45668735
一:海量数据在内存小的情况下:单个文件去重(url)
1.(分治+Hash)+合并:
可以对 url 取hash,对 hash%100,即将所有 url 分进100个小文件中。重复的 url 一定会被分到同一个小文件中,再对小文件进行去重。如果 hash 算法做的足够好,不同 url 的hash值肯定不同,再小文件中可以对哈希值进行去重。也可以通过 set 对url本身进行去重。(就算不同小文件有可能相同,就再次重复分治+Hash的操作)
2.BloomFilter布隆过滤器:
二:海量数据在内存小的情况下:两个文件获取共同的数据(url)
(分治+Hash)+合并
三:海量数据在内存小的情况下:单个文件取Top K(整数)
(分治+排序)+合并