下方有数据可免费下载

目录

  • 数据预处理
    • 查看数据
    • 数据扩展
    • 数据加载
  • 构建数据仓库
    • 创建外部表
    • 创建分区表
  • 数据分析需求
    • 条数统计
    • 关键词分析
    • UID分析
    • 用户行为分析
      • 点击次数与rank之间的关系分析
      • 直接输入URL作为查询词的比例
      • 独立用户行为分析

数据下载 请点击我,提取码:cutx,觉得有用希望您能点一个赞哦。

数据预处理

查看数据

[hadoop@hadoop000 hive_data]$ less sogou.500w.utf8
20111230000005  57375476989eea12893c0c3811607bcf        奇艺高清        1       1       http://www.qiyi.com/
20111230000005  66c5bb7774e31d0a22278249b26bc83a        凡人修仙传      3       1       http://www.booksky.org/BookDetail.aspx?BookID=1050804&Level=1
20111230000007  b97920521c78de70ac38e3713f524b50        本本联盟        1       1       http://www.bblianmeng.com/[hadoop@hadoop000 hive_data]$ wc -l sogou.500w.utf8
5000000 sogou.500w.utf8

数据扩展

主要目的:将第一列的‘时间’进行substr操作,分成年,月,日,时这四列,加到数据的后面,方便后面进行分区。

[hadoop@hadoop000 hive_data]$ vi sogou-log-extend.sh
#!/bin/bash
#infile=/sogou_500w.utf8
infile=$1
#outfile=/sogou_500w.utf8.ext
outfile=$2
awk -F '\t' '{print $0 "\t" substr($1,1,4) "\t" substr($1,5,2) "\t" substr($1,7,2) "\t" substr($1,9,2)}' $infile > $outfile[hadoop@hadoop000 hive_data]$ bash sogou-log-extend.sh /home/hadoop/data/hive_data/sogou.500w.utf8 /home/hadoop/data/hive_data/sogou.500w.utf8.ext[hadoop@hadoop000 hive_data]$ less sogou.500w.utf8.ext
20111230000005  57375476989eea12893c0c3811607bcf        奇艺高清        1       1       http://www.qiyi.com/    2011    12      30      00
20111230000005  66c5bb7774e31d0a22278249b26bc83a        凡人修仙传      3       1       http://www.booksky.org/BookDetail.aspx?BookID=1050804&Level=1   2011    12      30      00
20111230000007  b97920521c78de70ac38e3713f524b50        本本联盟        1       1       http://www.bblianmeng.com/      2011    12      30      00

数据加载

将数据加载到hdfs

hadoop fs -mkdir -p /sogou/20111230
hadoop fs -put  /home/hadoop/data/hive_data/sogou.500w.utf8  /sogou/20111230/
hadoop fs -mkdir -p /sogou_ext/20111230
hadoop fs -put  /home/hadoop/data/hive_data/sogou.500w.utf8.ext  /sogou_ext/20111230/

构建数据仓库

创建外部表

create external table if not exists sogou.sogou_20111230(
ts string,
uid string,
keyword string,
rank int,
order int,
url string)
comment 'This is the sogou search data of one day'
row format delimited
fields terminated by '\t'
stored as textfile
location '/sogou/20111230';

创建分区表

create external table if not exists sogou.sogou_ext_20111230(
ts string,
uid string,
keyword string,
rank int,
order int,
url string,
year int,
month int,
day int,
hour int)
comment 'This is the sogou search data of extend'
row format delimited
fields terminated by '\t'
stored as textfile
location '/sogou_ext/20111230';create external table if not exists sogou.sogou_partition(
ts string,
uid string,
keyword string,
rank int,
order int,
url string)
comment 'This is the sogou search data by partition'
partitioned by(
year INT, month INT, day INT, hour INT)
row format delimited
fields terminated by '\t'
stored as textfile;set hive.exec.dynamic.partition.mode=nonstrict;insert overwrite table sogou.sogou_partition partition(year, month, day, hour) select * from sogou.sogou_ext_20111230;select * from sogou_partition limit 10;

数据分析需求

条数统计

*数据总数*
select count(*) from sogou_ext_20111230;
*非空查询条数*
select count(*) from sogou_ext_20111230 where keyword is not null and keyword != ' ';
*无重复条数(根据ts,uid,keyword,url)*
select count(*) from (select ts,uid,keyword,url from sogou_ext_20111230 group by ts,uid,keyword,url  having count(*)=1) B;
*独立UID条数*
select count(distinct(uid)) from sogou_ext_20111230;

关键词分析

*关键词平均长度统计,关键词中没有空白字符,则长度为一*
select avg(a.cnt) from (select size(split(keyword,' s+')) as cnt from sogou_ext_20111230) a;Total MapReduce CPU Time Spent: 19 seconds 870 msec
OK
1.0012018
Time taken: 28.049 seconds, Fetched: 1 row(s)*查询频度排名*
select  keyword,count(*) as cnt from sogou_ext_20111230 group by keyword order by cnt desc limit 10;Total MapReduce CPU Time Spent: 43 seconds 440 msec
OK
百度  38441
baidu   18312
人体艺术    14475
4399小游戏 11438
qq空间    10317
优酷  10158
新亮剑 9654
馆陶县县长闫宁的父亲  9127
公安卖萌    8192
百度一下 你就知道   7505
Time taken: 64.503 seconds, Fetched: 10 row(s)

UID分析

*查询一次,两次,三次,大于三次的UID数量*
select sum(if(uids.cnt=1,1,0)),sum(if(uids.cnt=2,1,0)),sum(if(uids.cnt=3,1,0)),sum(if(uids.cnt>3,1,0)) from (select uid,count(*) as cnt from sogou_ext_20111230 group by uid) uids;Total MapReduce CPU Time Spent: 34 seconds 600 msec
OK
549148  257163  149562  396791
Time taken: 56.256 seconds, Fetched: 1 row(s)*UID平均查询次数*
select sum(uids.cnt)/count(uids.uid) from (select uid,count(*) as cnt from sogou_ext_20111230 group by uid) uids;Total MapReduce CPU Time Spent: 28 seconds 400 msec
OK
3.6964094557111005
Time taken: 49.467 seconds, Fetched: 1 row(s)*查询次数大于两次的用户总数*
select sum(if(uids.cnt>2,1,0)) from (select uid,count(*) as cnt from sogou_ext_20111230 group by uid) uids;Total MapReduce CPU Time Spent: 31 seconds 520 msec
OK
546353
Time taken: 51.733 seconds, Fetched: 1 row(s)*查询次数大于两次的用户所占比*
分开计算,然后相除。

用户行为分析

点击次数与rank之间的关系分析

select count(*) as cnt from sogou_ext_20111230 where rank<11;Total MapReduce CPU Time Spent: 13 seconds 230 msec
OK
4999869
Time taken: 23.677 seconds, Fetched: 1 row(s)总数为500万,比例为4999869/5000000,可看出,绝大部分会点击前10条搜索结果。

直接输入URL作为查询词的比例

*直接输入URL查询的比例*
select count(*) from sogou_ext_20111230 where keyword like '%www%';Total MapReduce CPU Time Spent: 12 seconds 390 msec
OK
73979
Time taken: 24.717 seconds, Fetched: 1 row(s)*直接输入URL查询并且查询的URL位于点击的URL中*
select sum(if(instr(url,keyword)>0,1,0)) from (select * from sogou_ext_20111230 where keyword like '%www%') a;Total MapReduce CPU Time Spent: 12 seconds 600 msec
OK
27561
Time taken: 23.817 seconds, Fetched: 1 row(s)可看出大部分搜索URL,并不能得到自己想要的结果。

独立用户行为分析

搜索个人的行为,此处略。

大数据Hive学习案例(1)——基于搜狗sogou_500w的日志数据分析相关推荐

  1. 大数据Hive学习案例(2)——基于汽车销售的日志数据分析

    下方有数据可免费下载 目录 原始数据 项目实战 数据仓库的构建 1.构建数据仓库 2.创建原始数据表 3.加载数据到数据仓库 4.验证数据结果 数据分析 1.乘用车辆和商用车辆的销售数量和比例 2.山 ...

  2. 大数据Hive集成python分析框架—搜狗实验室(用户查询日志)—电影评分分析

    一.Spark 大数据分析框架 1.1 数据结构 1.2 SQL语句简介 二.搜狗实验室(用户查询日志)数据分析 2.1获取数据集并初步分析: 2.2 创建数据库/表--导入数据分析 三.电影评分分析 ...

  3. 大数据----Hive学习(6)----Hive 基本操作4

    文章目录 函数 1 系统内置函数 2 常用内置函数 2.1 空字段赋值 2.2 CASE WHEN THEN ELSE END 2.3 行转列 2.4 列转行 2.5 窗口函数(开窗函数) 2.6 R ...

  4. 2021年大数据Hive(十二):Hive综合案例!!!

    全网最详细的大数据Hive文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 Hive综合案例 一.需求描述 二.项目表的字段 三.进 ...

  5. 图解大数据 | Hive搭建与应用@实操案例

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/84 本文地址:http://www.showmeai.tech/article-det ...

  6. 大数据单机学习环境搭建(5)Hive建表DDL详解

    专题:大数据单机学习环境搭建和使用 1. Hive建表简单示例 1.1.Hive建表语句 1.2.表详细信息 1.3.数据展示 2. Hive建表语法详解 3.拓展1:复杂数据分割 4.拓展2:事务表 ...

  7. B06 - 999、大数据组件学习③ - Hive

    初学耗时:999h 注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端. 『   因为要去见那个不一般的人,所以我就不能是一般人.』  B99.要学就学大数据 - B系列总纲   ...

  8. 大数据之学习成绩处理案例(一)

    大数据之学习成绩处理案例 来自学了两天python的NewBee-Yunzi的第一个案例总结: 这个案例学习如何处理数据表中的重复值,异常值,空值,空格,根据条件对值进行分级. 有这么个数据表: 学号 ...

  9. 2021年大数据Hive(一):​​​​​​​Hive基本概念

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 历史文章 前言 Hive基本概念 一.Hive介绍 1.什么是Hive 2.为什么使 ...

最新文章

  1. Nginx其他配置——日志管理、网页压缩、访问控制
  2. Flutter 在铭师堂的实践
  3. Python 为了提升性能,竟运用了共享经济!赶紧看看!!
  4. 深度学习《CGAN新认识》
  5. ndarray的转置(numpy.transpose()与A.T命令对比详解)
  6. μC/OS-II硬件软件体系结构
  7. 你敢花一天时间看完本文在简历上添一笔“熟练使用C++编程”吗?
  8. SystemTimer,TimerTaskList等源码分析
  9. 基于Spring Security的认证授权_方法授权_Spring Security OAuth2.0认证授权---springcloud工作笔记133
  10. 深入解析alloc/retain/release/dealloc实现
  11. 修改默认启动操作系统
  12. 磊科全功能路由器上网行为管理配置指南 -- 路由器
  13. mysql 慢查询日志路径_mysql的慢查询日志
  14. 怎么修改打印机服务器权限,Win7如何设置网络打印机管理权限
  15. 多人协同在线编辑文档软件使用体验
  16. python 中怎么把类似这样的‘\xe5\xae\x9d\xe9\xb8\xa1\xe5\xb8\x82‘转换成汉字输出
  17. 如果忘记了 iPhone 密码
  18. java反射机制是什么_java中的反射机制是什么?
  19. EPIC 审批流程设置 BAdI:示例
  20. 第51次全国计算机等级考试,第51次全国计算机等级考试(NCRE)在我校顺利举行...

热门文章

  1. GPIO子系统需要掌握的重要概念
  2. 基于C++实现的股票大数据的统计分析与可视化
  3. Python爬虫入门教程 67-100 Python爬虫摆脱控制台,开始走上台面
  4. asyncio系列之sleep()实现
  5. 为什么的你的微信群被屏蔽了,这些原因你知道吗?
  6. java imageicon大小_Java 自动缩放ImageIcon到标签大小
  7. 【UE4】HTTP下载
  8. 取出汉字的拼音首字母
  9. PHP通过CURL上传图片(微信公众号上传素材)
  10. php carbon详解,Carbon 中文文档