本节学习介绍
这周的项目是在分析维基百科2016年11月某一个小时的流量日志,最后根据这个流量最后分析出维基百科的这个月的搜索热点。
Project - Part1 数据预处理
我们获得的原始数据主要有四个分开的字段
domain_code page_title count_views total_response_size
domain_code: 主要指的是访问区域的域名缩写(简而言之就是地区),在这个项目中,我们只需要关注地区为en的即可。
page_title: 相当于访问的目标
count_views:该页面在相应时间内查看的次数。
total_reponse_size: 相应的次数
需要分析的数据在S3中的位置:s3://cmucc-datasets/wikipediatraf/201611/pageviews-20161109-000000.gz
下载数据的方式:
wget https://cmucc-datasets.s3.amazonaws.com/wikipediatraf/201611/pageviews-20161109-000000.gz
需要做的处理
排除第一列不是英语开头的数据, 非en或en.m开头
我们需要排除一些特别的开头的条目。
!!!!注意!!!!
这个地方条目给的是Json格式的文件,需要自己对条目进行提取。每年的条目都会有一定改变,所以如果使用了别人的代码,这里会被马老师查出来,死的很惨。
维基百科文章标题限制:维基百科政策规定,如果任何文章以英文字母开头,则该字母必须大写。
一链接指向的是图片或者音乐,比如后缀结尾是:ng, gif, jpg, jpeg, tiff, tif, xcf, mid, ogg, ogv, svg, djvu, oga, flac, opus, wav, webm的都需要被排除
维基百科歧义:以结尾_(disambiguation)的也需要被排除
特别页面:如404.php, Main_page, -等的页面也需要被排除
最后输出格式的要求:
[page_title]\t[count_views]
Project - Part2 数据的分析
在数据过滤之后,现在有9个小的问题需要我们进一步回答。问题在runner.sh文件中
学会提交答案
总共有多少个英文的请求被发起,在这一个小时中?
找出最受欢迎的3篇文章
数据的相关问题
在candidate.txt中有选票超过100,000的候选人的名单,找出谁是最受欢迎的
在senators.txt中列出了所有参议员的名单,按照降序的顺序列出他们的名单
在voter_minds中列出了一些与选举相关的话题,采用1224的排序方法找出所有话题的排名。
races.csv文件中给出了每个州的选票情况(对应每个州的人口),找出对竞选热度最高的三个州
正则匹配
按照题目的要求,找出Cloud单词出现的数量
找出每年的受欢迎的电影的数量,按照降序进行排列,并以Json的格式进行输出
oscars.csv中包含了每届奥斯卡奖的名字,找出最受欢迎的奥斯卡年份(并按照降序进行排列)
说了辣么多,代码在如下链接
代码