对于大文件或者海量数据的处理研究

对于大文件或者海量数据的处理研究

处理海量数据和大文件是面试中经常被问到的题目之一,在日常开发中也具有广泛的使用方面因此原因特来研究和总结一下常用的此类问题的描述情形和处理方式,既是为了功利的应付面试也是为了为日后工作遇到该类问题提供思路和解决灵感。本文将参考网上和面试常见的题目给出个人的处理方法。

1.海量数据日志,提取出某日访问百度次数最多的ip

对于海量数据一般的解决思路是将数据进行分割,将大数据分割成更小量的数据后,再进行处理。对于此问题我们
可以试着利用取余的方式将文件分割成几个小文件,再在每个小文件中寻找出现频率最多的ip,最后将多个小文件中的ip频率进行统计和对比。
算法思想(分而治之+hash)

  1. 对于每个ip值我们进行hash(ip)再取余的操作,将之前的大文件分割成多个小文件
  2. 对于每个小文件,我们去统计文件中每个ip出现过的次数,并将出现次数最多的ip进行记录。
  3. 再将每个小文件中出现次数最多的ip进行排序,求出所需的ip。

2.海量数据文件存储于多个文件,任何一条数据都可能存在多个文件中,筛选出现次数最多的k条数据

思路:
1. 依次遍历文件,通过hash映射将每个文件的每条数据映射到新的文件中(此时生成n个小文件)
2. 统计每个文件中出现次数最多的k个数据,构建成键值对的形式
3. 利用堆排序,对这n个文件中的数据进行遍历,在n*k条数据中找到合适的k个数据。

3.对于a和b两个大文件每个文件都具有海量数据,找出两个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值