如何从大量的url中找出相同的url
给定a、b两个文件,各存放50亿个url,每个url各占64B,内存限制是4GB,请找出a、b两个文件共同的url
分析:
拆分成可以处理的文件,进行比较。
遍历a文件,求每天url的hash值,并对500求余,这样原来文件分成500份文件,编号a0,a1,a2…a499平均一份文件有1000万条数据,(100万字节就是1mb)文件大概640mb。b文件做相同处理,因为相同url的hash值相同,所以相同url会被分配到相同的文件中。
将着500份文件一一和b文件拆分出来的500文件比较。
比较过程是,把a文件的一个小文件中的内容加入set集合,遍历b文件的小文件,若set中存在相同的url,则说明是重复的url,写入一个准备好的文件。