大数据面试、笔试题收集

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


题目描述:给定a、b两个文件,各存放50亿个url,每个url各占用64字节,内存限制是4G,如何找出a、b文件共同的url?


 


分析:我们先来看如果要把这些URL全部加载到内存中,需要多大的空间。


1MB = 2^20 = 10^6 = 100W


1GB = 2^30 = 10^9 = 10亿


50亿 = 5G * 64 Byte = 320G


明显是不可能全部加载到内存中的。我们可采用以下方法解决:


方法1:


采用Bloom filter,假设布隆过滤器的错误率为0.01,则位数组大小m约为输入元素个数n的13倍,此时需要的哈希函数k约为8个。


 
元素个数:n = 5G
位数组大小:m = 5G * 13 = 65G = 650亿 即需要650亿个bit位才能达到错误率0.01
而我们拥有的内存可容纳bit位个数:4G * 8bit = 32G bit = 320亿,按此实现错误率大于0.01。


方法2:


 


分别扫描A,B两个文件,根据hash(url)%k(k为正整数,比如k = 1000,那么每个小文件只占用300M,内存完全可以放得下)将url划分到不同的k个文件中,比如a0,a1,....a999;b0,b1,...b999;


这样处理后相同的url肯定在对应的小文件中(a0 vs b0,a1 vs b1,...a999 vs b999)因为相同的url%1000的值肯定相同,不对应的小文件不可能有相同的url;


然后我们只要求出1000对小文件中相同的url即可。比如对于a0 vs b0,我们可以遍历a0,将其中的url存放到hash_map中,然后遍历b0,如果b0中的某个url在hash_map中,则说明此url在a和b中同时存在,保存下来即可。
大数据面试笔试资料-56家互联网大公司面试笔试题资料整理汇总: hive面试.doc 京东.jpg 笔试题1.docx 笔试题10.jpg 笔试题11.JPG 笔试题12_搜狐 笔试题13_九章云极科技有限公司 笔试题14_北京东方国信科技股份有限公司-联通事业部-笔试题 笔试题15_百分点 笔试题16_Admaster 笔试题2.docx 笔试题3.docx 笔试题4_boss直聘.docx 笔试题5_面试题4的实现思路.docx 笔试题6.jpg 面试总结 面试题1.doc 面试题2.doc 面试题3.doc 面试题7+面试题8+面试题9_北京广视通达数字网络科技有限公司 中企动力面试总结?-面试题1 畅捷通(用友集团)?-面试题2 麦达数字面试?-面试题3 boss直聘面试?-面试题5 博易智软(北京)技术股份有限公司?面试题7 公安部第一研究所?面试题7 IBM?面试题7 车网互联?面试题7 凯立德科技股份有限公司?面试题7 北京捷通华声语音技术有限公司?面试题7 北京法意科技有限公司?面试题7 大树科技(重点)?面试题7 北京XXX宇有限公司??面试题8 盛世全景?面试题8 华胜天成?面试题8 联龙博通?面试题8 大麦网?面试9 京东金融?面试10 滴滴打车 架构师?面试11 神州?面试11 百分点科技?面试11 锐安科技?面试12---有笔试 人人贷?国舜科技?面试13 宜信?面试16 明略数据?面试17 爱奇艺面试面试18---爱奇艺明确有背景调查,记在面试评测上面,由hr写背景调查评测----(直接卡死了) 奥维云网?面试26 喜马拉雅FM?中星电子?银橙传媒?面试27 电信云计算?面试题29 乐视?面试题29 优酷?面试题29 无双科技公司?面试题30 亿玛在线公司?面试题30 58同城?面试题30 talkingDate?面试题30 慕华信息科技有限公司?面试题30 美团网?面试题31 LeanCloud?面试题31 筑巢新游?面试题31 阿里巴巴?面试题32 博睿宏远?面试题33 融易通?面试题33 中国互联网络信息中心?面试题33? 优酷土豆?面试题33 乐视?面试题41 TalkingData?面试题41 网德天下?面试题41 东方国信?面试题41 畅捷通?面试题41 太极?面试题41 北京四中网校?面试题41 SenseTime?面试题41 易观智库?面试题41 银创科技?面试题41 京东?面试题41 壕鑫互连?面试题41 滴答拼车?面试题41
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值