爬虫采集
.采集智联招聘信息进行分析
采集地址:
http://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E5%8C%97%E4%BA%AC&kw=%E5%A4%A7%E6%95%B0%E6%8D%AE&sm=0&p=1
采集结果导入Hive,以下分析使用Hive SQL操作
分析工资最高的前3名职位(薪酬为范围时取平均值)
分析需求量最高的大数据前3名职位
分析大数据职位需求量最高的前3大行业(公司行业)
以上分析结果通过Zeppelin展示
有其他分析加分
===============================================================================
首先,将爬虫出来的数据上传到远程服务端。解决方案:
方案一:
1.rz –y查看是否可以CRT自己上传(一般只能小文件)
如果不可以出现如下:
那就安装:yum –y install lrzsz
安装成功后:rz –y会出现如下窗口:
选中文件->添加->确定就可以了。
方案二:
在CRT上:选项->会话选项->端口转发->添加->如图:
图中本地IP:127.0.0.1;端口:任意但不能重复。远程目的主机IP,端口22.确定。
最后选择上传的文件(一般大文件)。
其次,将爬虫出来的数据保存为csv格式,爬虫出来的数据是中文,到自己的CRT上会出现乱码。解决方案:
一。CRT修改
1.选项->会话选项->外观->字符编码:UTF-8
二。命令修改:
1.cd到自己上传的数据文件(如图albert.csv):
2.查看数据文件类型(如图UTF-16):
3.修改数据文件类型(复制iconv -f UTF-16-t UTF-8 albert.csv -o albert_new2.csv):
4.查看是否修改成功:
5.断开重启
6.cat 复制的文件:
作业全过程:
1.新建任务(高级模式采集)
2.新建网页
3.”下一个”循环
4.效果展现
5.创建一个元素列表处理一组元素
6.扩展
7.选择添到列表
8. 选择元素
9. 扩展
10.添加到列表后的效果,创建列表完成
11.循环
12.选择元素
13.选择这个元素文本
14.效果显示
15继续选择下一个文本.
16.点击这个元素进入下一个去选择元素
17.到了新页面后选择元素
18.选择需求文本
19. 选择下一个文本
20.文本选完效果下一步
21.下一步
22.启动单机选择
23.正在采集
24.停止
25.导出
26.数据在桌面,然后根据前面的上传方法上传到
1.进入hive
2.创建表格
create table demo
(position string ,wages string ,postype string ,company string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';
3.从root导入数据
load data local inpath '/hadoop_test/albert/test.txt' overwrite intotable demo;
4.查看导入的数据
select * from demo;
5.去除多余的“”符号
insert overwrite table demo select regexp_replace (position,'"',''),regexp_replace(wages,'"',''),regexp_replace(postype,'"',''),regexp_replace(company,'"','') from demo;
6.结果
以上是把数据收集到了,之后根据需求开始分析:
一、 分析工资最高的前3名职位(薪酬为范围时取平均值):
1.先创建表格position来存储职位和工资:
create table position
(position string,min string,max string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '-';
2.再从Demo导入数据:
insert into position(position,min) select position,wages from demo;
显示效果:
3.在创建一个表格来存储职位最小最大工资和平均工资:
create table work1
(position string,min string,max string,avg string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|';
4.再导入数据:
insert into work1 select *,(min + max)/2 as avg from position;
显示效果:
5.去Zeppelin显示结果:大数据项目培训老师(125000.5)、大数据总监(85000.5)、
大数据平台首席架构师(60000.5)
二、分析需求量最高的大数据前3名职位:大数据开发工程师(75)、大数据工程师(28)、大数据研发工程师(20)
三、分析大数据职位需求量最高的前3大行业(公司行业)
互联网/电子商务(284)、计算机软件(220)、IT服务(系统/数据/维护)
总结 :查询字符如果是数字就要bigint,如果是其他的就会错了