第2组百度面试题
1.给出两个集合A和B,其中集合A={name},
集合B={age、sex、scholarship、address、...},
要求:
问题1、根据集合A中的name查询出集合B中对应的属性信息;
问题2、根据集合B中的属性信息(单个属性,如age<20等),查询出集合A中对应的name。
2.给出一个文件,里面包含两个字段{url、size},
即url为网址,size为对应网址访问的次数,
要求:
问题1、利用Linux Shell命令或自己设计算法,
查询出url字符串中包含“baidu”子字符串对应的size字段值;
问题2、根据问题1的查询结果,对其按照size由大到小的排列。
(说明:url数据量很大,100亿级以上)
1.问题1: select age,sex,scholarship,address,...
from B,A
where B.name = A.name
问题2:select name
from A,B
where B.name = A.name and B.age<20
2.问题1: shell: gawk ‘ /baidu/ { print $2 } ’ FILE
问题2: shell: gawk ‘ /baidu/ {print $2}’ FILE | sort -n -r
对于大数据,可以对每个url计算hash,划分成小文件,再对每个小文件进行处理
对于每个小文件,计算url的size,可以用hash_map, key是url,value是size
然后根据size排序,最后利用多路归并排序对整个url排序