美文网首页
海量数据去重

海量数据去重

作者: 水中的蓝天 | 来源:发表于2022-08-02 11:06 被阅读0次

一个文件中有40亿条数据,每条数据是一个32位的数字串,设计算法对其去重,相同的数字串仅保留一个,内存限制1G.

方法一:排序

对所有数字串进行排序,重复的数据传必然相邻,保留第一个,去除后面重复的数字串即可。

缺点是排序时间复杂度太高,并且显然是需要内排序+外排序一起的。优化的方法有扫雪机模型。

方法二:哈希表 + 文件分割

当然还有一种方法,取32位的前n位做一个哈希,然后把哈希值一样的数据串放到一个文件里面。然后每次将一个文件load到内存中,然后对这个文件中的数据做个排序 or 哈希去重即可。

这样的缺点是磁盘IO较多。

方法三:位图

用512MB的unsigned int数组来记录文件中数字串的存在与否,形成一个bitmap。

然后从0到2^32-1开始遍历,如果flag为1,表明该数存在。这样就自动实现了去重。

这个思路很好了。

相关文章

  • 海量数据去重

    一个文件中有40亿条数据,每条数据是一个32位的数字串,设计算法对其去重,相同的数字串仅保留一个,内存限制1G. ...

  • 海量数据去重-精确去重[Bitmap]

    假如我们使用Bitmap(或称BitSet)储存,定义一个很大的bitmap数组,每个元素对应Bitmap中的1位...

  • Spark海量数据去重策略

    1.目标:尽可能在有限资源的情况下,利用尽量少的资源来达到更高效的效果。今天就给大家分享一个在DDT首页概览实时性...

  • 【直通BAT】海量数据面试总结

    目录 海量数据计算总结 海量数据去重总结 1. 计算容量 在解决问题之前,要先计算一下海量数据需要占多大的容量。常...

  • simHash海量文本去重

    simHash是google提出的用于计算海量文本相似度的算法:(1) 分词 => word(2) 单词权重 tf...

  • 海量文档的去重

    思路: 文本的向量化表示1.1 simhash在线去重 抽屉原理1.2 word2vec1.3 bagofword...

  • 001 Bitmap和Bloom过滤器

    两个算法经常用于大数据规模下的去重,压缩,判断是否存在(避免直接扫描磁盘),排序等情况。海量数据的查询,判断是否存...

  • 【golang】海量数据去重-布隆过滤器

    在做域名爆破中,遇到了把一个300G的子域名json文件进行去重,一开始是考虑使用字典进行去重,但是数据量大了,会...

  • 海量数据下的去重和查重(二):布隆过滤器

    在上篇文章海量数据下的去重和查重(一):BitMap位图法的最后,我们说到位图法缺点,是其所占空间随集合内最大元素...

  • iOS 数据排重方案

    说明:本文只针对少量数据的排重的几种简单方案,暂不涉及海量数据. 简单结构的排重对象 1.利用 NSArray 的...

网友评论

      本文标题:海量数据去重

      本文链接:https://www.haomeiwen.com/subject/yogrwrtx.html