栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

大数据类面试题

大数据类面试题

文章目录

如何从大量的url中找出相同的url如何从大量数据中找出高频词

如何从大量的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,写入一个准备好的文件。

思想
分而治之,进行哈希取余,把原有的文件切分成更多的小文件;
对每个子文件进行 HashSet 统计,选出重复的url。

如何从大量数据中找出高频词

分析:
1.将文件切分成2000份小文件。
1个G是切分成2000份文件,平均一份是500kb.
切分规则是在遍历每行单词时,计算单词的哈希值求2000的余数,从而确定一个单词应该划分到那个文件中,并且相同的单词会划分到同一份文件中。

2.求每一份文件词频前100的单词。
使用hashmap统计每个单词出现的次数。对hashmap排序,取词频前100的单词。保存下来。

3.遍历每份文件产出的词频前100的单词,第一份文件作为小顶堆的初始值,遍历剩余文件的前100单词,使用小顶堆选出大文件的词频前100的单词。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/774179.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号