美文网首页
海量数据处理

海量数据处理

作者: 小幸运Q | 来源:发表于2021-03-08 21:35 被阅读0次

  1. 如何从10G文件中统计出出现次数最多的QQ号,内存只有1G,外存无限。

可以逐行文件中的QQ号,然后hash到20个新的文件中,然后再对这20个文件进行Map统计,得到最大的值。

  1. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?

如果允许有一定的错误率,可以使用Bloom filter,4G内存大概可以表示340亿bit。将其中一个文件中的url使用Bloom filter映射为这340亿bit,然后挨个读取另外一个文件的url,检查是否与Bloom filter,如果是,那么该url应该是共同的url(注意会有一定的错误率)

  1. 在2.5亿个整数中找出不重复的整数

采用2-Bitmap(每个数分配2bit,00表示不存在,01表示出现一次,10表示多次,11无意义)进行,共需内存2^32 * 2 bit=1 GB内存,还可以接受。然后扫描这2.5亿个整数,查看Bitmap中相对应位,如果是00变01,01变10,10保持不变。所描完事后,查看bitmap,把对应位是01的整数输出即可。

  1. 给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?

(1)bool数组:申请512M的内存,一个bit位代表一个unsigned int值。读入40亿个数,设置相应的bit位,读入要查询的数,查看相应bit位是否为1,为1表示存在,为0表示不存在。
(2)字典树:利用bool的0和1组成一个二叉树,先插入该数字,然后插入其他40亿数字,如果有重复的数则会发现之前该节点已被创建。一般20个亿应该就可以了,因为不需要一开始就预配那么多内存所以可以逐渐增加,理论上内存占用比数组少,但是速度不能保证....

  • 其实逐行读取文件然后匹配理论上也可以啊....
  1. 怎么在海量数据中找出重复次数最多的一个?

先做hash,然后hash值模1000映射到0-999的文件夹,生成以该数值命名的文件,文件内容写入1,若已生成该文件,则++。最后统一读一遍文件内容。

  1. 如何统计出40亿个数里面出现两次的数?

unsigned int 大小的bit数组,每个元素包含两个bit位,统计0-3,大于3按3算,最后遍历一遍即可。

相关文章

  • 面对海量的数据,我们应该如何处理?

    一、海量数据处理 所谓海量数据处理,无非就是基于海量数据上的存储、处理、操作。何谓海量,就 是数据量太大,所以导致...

  • 10.28

    看海量数据处理部分题目 学习python面向对象

  • 海量数据处理

    1 数值topK问题:给出n个数中最大的k个数 1.1 若能全部读入内存 1,快速排序+二分。O(n)2,冒泡排序...

  • 海量数据处理

    1.一个文件中,存储有10亿个单词(数字+字母组成,每个单词小于16Byte),每行一个,求出现频率最高的10个单...

  • 海量数据处理

    1.海量日志数据,提取出某日访问百度次数最多的那个IP 算法思想:分而治之+Hash 换言之,先映射,而后统计,最...

  • 海量数据处理

    面试题 海量日志数据,提取出某日访问百度次数最多的那个IP 首先是这一天,并且是访问百度的日志中的IP取出来,逐个...

  • 海量数据处理

    相关文章 海量数据处理之经典实例分析top k 问题中各种场景分析的很好: 单机+单核+足够大内存单机+多核+足够...

  • 海量数据处理

    topk问题

  • 海量数据处理

    处理海量数据的常规思路 分而治之/Hash映射 + Hash_map统计 + 堆/快速/归并排序 1、海量日志数据...

  • 海量数据处理

    如何从10G文件中统计出出现次数最多的QQ号,内存只有1G,外存无限。 可以逐行文件中的QQ号,然后hash到20...

网友评论

      本文标题:海量数据处理

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