Project1_Sequential_Analysis

本节学习介绍

这周的项目是在分析维基百科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
需要做的处理
  1. 处理脏数据:删除畸形数据始终是数据预处理中的第一步。有些行没有预期的四列。您应该过滤掉这些行

  2. URL归一化和百分编码:根据RFC 3986,URL应该被归一化,特殊字符将通过百分比编码转换

  1. 排除第一列不是英语开头的数据, 非en或en.m开头

  2. 我们需要排除一些特别的开头的条目。

!!!!注意!!!!
这个地方条目给的是Json格式的文件,需要自己对条目进行提取。每年的条目都会有一定改变,所以如果使用了别人的代码,这里会被马老师查出来,死的很惨。

  1. 维基百科文章标题限制:维基百科政策规定,如果任何文章以英文字母开头,则该字母必须大写。

  2. 一链接指向的是图片或者音乐,比如后缀结尾是:ng, gif, jpg, jpeg, tiff, tif, xcf, mid, ogg, ogv, svg, djvu, oga, flac, opus, wav, webm的都需要被排除

  3. 维基百科歧义:以结尾_(disambiguation)的也需要被排除

  4. 特别页面:如404.php, Main_page, -等的页面也需要被排除

  5. 最后输出格式的要求:

    [page_title]\t[count_views]

Project - Part2 数据的分析

在数据过滤之后,现在有9个小的问题需要我们进一步回答。问题在runner.sh文件中

学会提交答案
  1. 总共有多少个英文的请求被发起,在这一个小时中?

  2. 找出最受欢迎的3篇文章

数据的相关问题
  1. 在candidate.txt中有选票超过100,000的候选人的名单,找出谁是最受欢迎的

  2. 在senators.txt中列出了所有参议员的名单,按照降序的顺序列出他们的名单

  3. 在voter_minds中列出了一些与选举相关的话题,采用1224的排序方法找出所有话题的排名。

  4. races.csv文件中给出了每个州的选票情况(对应每个州的人口),找出对竞选热度最高的三个州

正则匹配
  1. 按照题目的要求,找出Cloud单词出现的数量

  2. 找出每年的受欢迎的电影的数量,按照降序进行排列,并以Json的格式进行输出

  3. oscars.csv中包含了每届奥斯卡奖的名字,找出最受欢迎的奥斯卡年份(并按照降序进行排列)

说了辣么多,代码在如下链接
代码