概述
对于大文件或者海量数据的处理研究
处理海量数据和大文件是面试中经常被问到的题目之一,在日常开发中也具有广泛的使用方面因此原因特来研究和总结一下常用的此类问题的描述情形和处理方式,既是为了功利的应付面试也是为了为日后工作遇到该类问题提供思路和解决灵感。本文将参考网上和面试常见的题目给出个人的处理方法。
1.海量数据日志,提取出某日访问百度次数最多的ip
对于海量数据一般的解决思路是将数据进行分割,将大数据分割成更小量的数据后,再进行处理。对于此问题我们
可以试着利用取余的方式将文件分割成几个小文件,再在每个小文件中寻找出现频率最多的ip,最后将多个小文件中的ip频率进行统计和对比。
算法思想(分而治之+hash)
- 对于每个ip值我们进行hash(ip)再取余的操作,将之前的大文件分割成多个小文件
- 对于每个小文件,我们去统计文件中每个ip出现过的次数,并将出现次数最多的ip进行记录。
- 再将每个小文件中出现次数最多的ip进行排序,求出所需的ip。
2.海量数据文件存储于多个文件,任何一条数据都可能存在多个文件中,筛选出现次数最多的k条数据
思路:
1. 依次遍历文件,通过hash映射将每个文件的每条数据映射到新的文件中(此时生成n个小文件)
2. 统计每个文件中出现次数最多的k个数据,构建成键值对的形式
3. 利用堆排序,对这n个文件中的数据进行遍历,在n*k条数据中找到合适的k个数据。
3.对于a和b两个大文件每个文件都具有海量数据,找出两个
最后
以上就是风中秋天为你收集整理的对于大文件或者海量数据的处理研究对于大文件或者海量数据的处理研究的全部内容,希望文章能够帮你解决对于大文件或者海量数据的处理研究对于大文件或者海量数据的处理研究所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复