Hive小实验,对搜狗日志进行分析

本文通过一系列Hive操作,包括数据清洗、启动Hadoop服务、创建数据库和表、导入数据、执行SQL查询,展示了如何对搜狗日志进行分析,例如统计查询次数、排名异常数据、热门查询词、热门域名和页面等。
摘要由CSDN通过智能技术生成

Hive小实验,对搜狗日志进行分析

1.数据清洗

1.1.将字段间的分隔符都设置为\t

# 查看数据文件的分隔符
sed -n l SogouQ.data | head -5
# 发现存在一个分隔符为空格,用\t代替输出新的数据文件
cat SogouQ.data|tr " " "\t" > Sogou.data

在这里插入图片描述

1.2.查看数据

cat /home/hadoop01/test/Sogou.data | head -10

在这里插入图片描述

2.启动必要服务,分别启动hdfs,yarn和Hive

start-dfs.sh
start-yarn.sh

在这里插入图片描述

hive --service metastore &
hive

在这里插入图片描述

3.利用Hive进行简单的数据分析

3.1.创建数据库sogo

create database sogo;

在这里插入图片描述

3.2.创建表log,以\t为分隔符

use sogo;
create table log(time STRING,id STRING,word STRING,rank_num INT,order_nun INT,url STRING)row format delimited fields terminated by '\t';

在这里插入图片描述

3.3.从本地载入数据

load data local inpath '/home/hadoop01/test/Sougou.data'into table log;

在这里插入图片描述

3.4.查询前2行数据

select * 
from log 
limit 2;

在这里插入图片描述

3.5.查询数据文件一共有多少行记录

select count(*) 
from log;
# 数据文件一共123456行记录

在这里插入图片描述

3.6.查询搜索结果排名第1,但是点击次序排在第2的数据有多少?

select count(*) 
from log 
where rank_num=1 and order_num=2;
# 索结果排名第1,但是点击次序排在第2的数据有4654条

在这里插入图片描述

3.7.统计每分钟的查询次数

# 法一:使用substring函数
select minute,count(*) as num 
from (select substring(time,4,2) as minute 
      from log) m 
group by minute;
# 法二:使用substr函数
select substr(time,4,2) as minute,count(*) as num 
from log 
group by substr(time,4,2);
# 法三:使用minute函数
select minute(time) as minute,count(*) as num 
from log 
group by minute(time);

在这里插入图片描述

在这里插入图片描述

3.8.搜索用户点击的URL含baidu的数据有多少?

select count(*) 
from log 
where url 
like '%baidu%';
# 搜索用户点击的URL含baidu的数据有9361条

在这里插入图片描述

3.9.最热门的10个查询词

select word,count(*) as num
from log
group by word
order by num desc
limit 10;

在这里插入图片描述

在这里插入图片描述

3.10.查询最受欢迎的10个域名

select substr(url,1,instr(url,'/')-1) as host,count(*) as num
from log
group by substr(url,1,instr(url,'/')-1)
order by num desc
limit 10;

在这里插入图片描述

在这里插入图片描述

3.11.最受欢迎的10个页面(以?为分隔符筛选)

select html,count(1) as num
from (
		select split(url,'\\?')[0] as html
		from log) h
group by html
order by num desc
limit 10;

在这里插入图片描述

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值