本次作业的要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3339
前言
本次作业是在《爬虫大作业》的基础上进行的,在《爬虫大作业》中,我主要对拉勾网python岗位的招聘信息进行的数据爬取,最终得到了2641条数据存在一个名为lagoupy.xls中。本次作业的任务主要有以下三点:
1.对CSV文件进行预处理生成无标题文本文件,将爬虫大作业产生的csv文件上传到HDFS
2.把hdfs中的文本文件最终导入到数据仓库Hive中,在Hive中查看并分析数据
3.用Hive对爬虫大作业产生的进行数据分析(10条以上的查询分析)
数据预处理
由于我们爬取下来的数据并不是全部都是我们所要的,或者是有一些数据需要进行加工才可以用到,这时候数据的预处理就必不可少了,原始的数据如下图所示。(下图为SCV截图):
1.对CSV文件进行预处理生成无标题文本文件,将爬虫大作业产生的csv文件上传到HDFS
首先,我们需要在本地中创建一个/usr/local/bigdatacase/dataset文件夹,具体的步骤为:
① cd /usr/local
② sudo mkdir bigdatacase
③ cd bigdatacase/
④ sudo mkdir dataset
⑤ cd dataset/
其次,我们把lagoupy.csv文件放到下载这个文件夹中,并使用命令把lagoupy.csv文件拷贝到我们刚刚所创建的文件夹中,具体步骤如下:
① sudo cp /home/chen/下载/lagoupy.csv /usr/local/bigdatacase/dataset/ #把lagoupy.csv文件拷到刚刚所创建的文件夹中
② head -5 lagoupy.csv #查看这个文件的前五行
如下图所示:
对CSV文件进行预处理生成无标题文本文件,步骤如下:
① sudo sed -i '1d' lagoupy.csv #删除第一行记录
② head -5 lagoupy.csv #查看前五行记录
如下图所示:
接着,启动hadoop,步骤如下:
① start-all.sh #启动hadoop
② jps #查看hadoop是否启动成功
如下图所示:
最后,我们把本地的文件上传至HDFS中,步骤如下:
① hdfs dfs -mkdir -p /bigdatacase/dataset #在hdfs上新建/bigdatacase/dataset
② hdfs dfs -ls /
③ hdfs dfs -put ./lagoupy.csv /bigdatacase/dataset #把本地文件lagoupy.csv上传至hdfs中
④ hdfs dfs -ls /bigdatacase/dataset #查看
⑤ hdfs dfs -cat /bigdatacase/dataset/lagoupy.csv | head -5 #查看hdfs中lagoupy.csv的前五行
如下图所示:
2.把hdfs中的文本文件最终导入到数据仓库Hive中
首先,启动hive,步骤如下:
① service mysql start #启动mysql数据库
② cd /usr/local/hive
③ ./bin/hive #启动hive
如下图所示:
四.在Hive中查看并分析数据
首先启动hive之后进行创建数据库再创表,语句如图下:
然后再查看一下数据,显示的数据格式正确即正确。
五.用Hive对爬虫大作业产生的进行数据分析
1.用户满意度分析:
在数据中分别获取评分为5,4,3,2,1的数量,然后进行分析,获取的数据如图所示:
评分为5的数量
评分为4的数量
评分为3的数量
评分为2的数量
评分为1的数量
平均数为4.4左右,更加能够证明用户对该影片的满意度较高!
2.用户所在城市分析
统计出粉丝所在城市数量最多的20个城市
评分星级大于4的粉丝集中所在的排名前20的城市。
从数据我们可以看出,观众所在最多的20个城市都是属于比较经济发达的城市,基本都是一线,二线城市,他们在影视方面为贡献了一些GDP,同时从一些方面上可以体会为当地居民的生活恩格尔系数是不低的。