大数据分析教程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ORDER BY COUNT_1 DESC//按照统计结果全局降序排序 LIMIT 100;//限制数据100行
4.2.1数据分析—创建点击量表
查看click表中所有数据,第一列代表商品id,第二列代表点击量
select * from click;// 查看click表中所有数据
4.2.2数据分析—创建加入购物车表
select * from match_data limit 100;
04 数据分析
4.1数据分析—中间表
中间表是数据库中专门存放中间计算结果的数据表。报表系统中的中间表 是普遍存在的。分析接下来的四个问题:
创建click表,写入商品点击次数top100数据 创建add_to_cart表,写入商品被加入购物车次数top100数据 创建collect表,写入商品被收藏次数top100数据 创建emption表,写入商品被购买次数top100数据
HDFS
02 学习目标
学习目标
学习 目标
掌握将本地文件上传至hdfs指定路 径技能
掌握创建hive表,并将本地数据 信息导入技能
掌握创建表获取指定格式、指定 信息技能
掌握转化率计算等函数
03前期准备
3.1hive基本操作
进入hive安装目录 cd /usr/hive/apache-hive-2.1.1-bin/
CREATE TABLE CLICK AS //创建表click,代表点击量 SELECT ITEM_ID,COUNT(1) COUNT_1//对所有的行ITEM_ID相同的进行统计 FROM RESULT WHERE ATIION_TYPE = '0'//限定条件ATIION_TYPE = '0' GROUP BY ITEM_ID// group by操作表示按照ITEM_ID字段的值进行分组,有相同的ITEM_ID值放到一起
CREATE TABLE CLICK_EMP AS //创建CLICK_EMP表 SELECT ITEM_ID,//商品id SUM(IF(ATIION_TYPE = '0',1,0))/COUNT(1) CLICK_EMP_RATE//点击总和除以该ITEM_ID的购买总和
FROM RESULT T1 GROUP BY ITEM_ID // group by操作表示按照ITEM_ID字段的值进行分组,有相同的ITEM_ID值放到一起 ORDER BY CLICK_EMP_RATE DESC;//按照点击购买转化率降序排序
create table match_data( user_id int, age_range int, gender int, merchant_id int, label int, activity_log varchar(1000)
) row format delimited fields terminated by ',';
3.2查看样例数据
原始数据表:train_format2.csv数据
user_id age_range gender merchant_id label
activity_log
34176
6
0
34176
6
0
944
-1 408895:1505:7370:1107:0
412
-1 17235:1604:4396:0818:0#954723:1604:4396:0818:0#275437:1604:4396:0818:0#236488:1505:4396:1024:0
4.2.4数据分析—创建购买量表
创建EMPTION表,写入商品购买次数top100数据 分析:商品id、购买、top100 表:商品id、购买量统计、100条数据
CREATE TABLE EMPTION AS //创建表EMPTION,代表购买量 SELECT ITEM_ID,COUNT(1) COUNT_1 //对所有的行ITEM_ID相同的进行统计 FROM RESULT WHERE ATIION_TYPE = '2' //限定条件ATIION_TYPE = '2' GROUP BY ITEM_ID // group by操作表示按照ITEM_ID字段的值进行分组,有相同的ITEM_ID值放到一起 ORDER BY COUNT_1 DESC //按照统计结果全局降序排序 LIMIT 100; //限制数据100行
3.4hive基本操作—导入数据
将root下的train_format2.csv数据导入到创建的match_data表中
load data local inpath '/root/train_format2.csv' overwrite into table match_data;
查看match_data数据
中间表1:初步创建表将activity_log中以‘#’分割的数据拆成多行数据
user_id 34176 34176 34176 34176 34176
age_range 6 6 6 6 6
gender 0 0 0 0 0
merchant_id 944 412 412 412 412
label -1 -1 -1 -1 -1
Baidu Nhomakorabea
activity_log 408895:1505:7370:1107:0 17235:1604:4396:0818:0 954723:1604:4396:0818:0 275437:1604:4396:0818:0 236488:1505:4396:1024:0
中间表2:将拆成行的数据activity_log中以‘:’分割的数据拆分成元素
2018
大数据竞赛培训之数据分析
讲师:赵利平
日期:2018年11月11日
1
原理介绍
2
学习目标
目录
CONTENTS
3
前期准备
4
数据分析
01 原理介绍
原理介绍
本次数据分析是采用Hive进行的, Hive是建立在 Hadoop 上的数据仓库基础 构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是 一种可以存储、查询和分析存储在Hadoop 中的大规模数据的机制。
CREATE TABLE COLLECT AS //创建表COLLECT,代表收藏量 SELECT ITEM_ID,COUNT(1) COUNT_1 //对所有的行ITEM_ID相同的进行统计 FROM RESULT WHERE ATIION_TYPE = '3' //限定条件ATIION_TYPE = '3' GROUP BY ITEM_ID // group by操作表示按照ITEM_ID字段的值进行分组,有相同的ITEM_ID值放到一起 ORDER BY COUNT_1 DESC //按照统计结果全局降序排序 LIMIT 100; //限制数据100行
Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查 询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。
Hive的Sql语 句
解释为mapreduce
启动hive client(master上) bin/hive
查看数据库列表 show databases;
3.1hive基本操作
建数据库 create database hongya; //创建数据库hongya show databases; //查看数据库,发现有库hongya use hongya; //使用hongya数据库
创建ADD_TO_CART表,写入商品点击次数top100数据 分析:商品id、加入购物车、top100 表:商品id、加入购物车量统计、100条数据
CREATE TABLE ADD_TO_CART AS //创建表ADD_TO_CART,代表加入购物车量 SELECT ITEM_ID,COUNT(1) COUNT_1//对所有的行ITEM_ID相同的进行统计 FROM RESULT WHERE ATIION_TYPE = '1' //限定条件ATIION_TYPE = '1' GROUP BY ITEM_ID // group by操作表示按照ITEM_ID字段的值进行分组,有相同的ITEM_ID值放到一起 ORDER BY COUNT_1 DESC //按照统计结果全局降序排序 LIMIT 100 ; //限制数据100行
1107
0
818
0
3.3hive操作--创建表
创建比赛数据表match_data,要求表结构与提供的数据结构一样,信息包
含用户iduser_id、用户性别gender、商家唯一id merchant_id、购物者标签
label,均为为int类型,用户与商家交互信息activity_log为varchar类型。
CREATE TABLE ADD_EMP AS //创建ADD_EMP P表 SELECT ITEM_ID,SUM(IF(ATIION_TYPE = '1',1,0))/COUNT(1) CLICK_EMP_RATE //加入购物车总和除以该
4.1数据分析—中间表
CREATE TABLE RESULT AS //创建RESULT表并获取match_data的USER_ID, ITEM_ID, BRAND_ID, ATIION_TYPE SELECT USER_ID, SPLIT(LOG_SPLIT,':')[0] AS ITEM_ID, //将拆成行的数据以:为分隔符筛选字符串第0位 SPLIT(LOG_SPLIT,':')[2] AS BRAND_ID, //将拆成行的数据以:为分隔符筛选字符串第2位 SPLIT(LOG_SPLIT,':')[4] AS ATIION_TYPE //将拆成行的数据以:为分隔符筛选字符串第4位 FROM (SELECT USER_ID,LOG_SPLIT FROM match_data LATERAL VIEW EXPLODE(SPLIT(ACTIVITY_LOG,‘#’)) ACTIVITY_LOG AS LOG_SPLIT ) T1;
//lateral view和split, explode一起使用,以#为分隔符将一列数据拆成多行数据
4.1数据分析—中间表
查看表RESULT中前100行数据
select * from RESULT limit 100;//查看前100行数据
4.2.1数据分析—创建点击量表
创建click表,写入商品点击次数top100数据 分析:商品id、点击、top100 表:商品id、点击量统计、100条数据
4.2.2数据分析—创建加入购物车表 查看ADD_TO_CART表中所有数据,第一列代表商品id,第二列代表统计量
select * from ADD_TO_CART;
4.2.3数据分析—创建收藏量表
创建click表,写入商品收藏次数top100数据 分析:商品id、收藏、top100 表:商品id、收藏量统计、100条数据
user_id 34176 34176
age_range 6 6
gender 0 0
merchant_id 944 412
label -1 -1
item_id
408895 17235
category _id 1505 1604
brand_id 7370 4396
time_stamp action_type
4.2.4数据分析—创建购买量表
查看表EMPTION中所有数据,第一列表示商品id,第二列代表购买量
select * from EMPTION;
4.3.1数据分析—点击购买转化率计算
创建商品点击购买转化率表,并按照降序排列 分析:商品id、点击购买转化率、降序排列 表:商品id、转化率、降序
4.3.1数据分析—点击购买转化率计算
查看表CLICK_EMP中前100行数据,第一列数据为item_id,第二列数据为点击购
买转化率。 select * from CLICK_EMP limit 100
4.3.2数据分析—加入购物车转化率计算
创建商品加入购物车购买转化率表,并按照降序排列 分析:商品id、加入购物车购买转化率、降序排列 表:商品id、转化率、降序
4.2.1数据分析—创建点击量表
查看click表中所有数据,第一列代表商品id,第二列代表点击量
select * from click;// 查看click表中所有数据
4.2.2数据分析—创建加入购物车表
select * from match_data limit 100;
04 数据分析
4.1数据分析—中间表
中间表是数据库中专门存放中间计算结果的数据表。报表系统中的中间表 是普遍存在的。分析接下来的四个问题:
创建click表,写入商品点击次数top100数据 创建add_to_cart表,写入商品被加入购物车次数top100数据 创建collect表,写入商品被收藏次数top100数据 创建emption表,写入商品被购买次数top100数据
HDFS
02 学习目标
学习目标
学习 目标
掌握将本地文件上传至hdfs指定路 径技能
掌握创建hive表,并将本地数据 信息导入技能
掌握创建表获取指定格式、指定 信息技能
掌握转化率计算等函数
03前期准备
3.1hive基本操作
进入hive安装目录 cd /usr/hive/apache-hive-2.1.1-bin/
CREATE TABLE CLICK AS //创建表click,代表点击量 SELECT ITEM_ID,COUNT(1) COUNT_1//对所有的行ITEM_ID相同的进行统计 FROM RESULT WHERE ATIION_TYPE = '0'//限定条件ATIION_TYPE = '0' GROUP BY ITEM_ID// group by操作表示按照ITEM_ID字段的值进行分组,有相同的ITEM_ID值放到一起
CREATE TABLE CLICK_EMP AS //创建CLICK_EMP表 SELECT ITEM_ID,//商品id SUM(IF(ATIION_TYPE = '0',1,0))/COUNT(1) CLICK_EMP_RATE//点击总和除以该ITEM_ID的购买总和
FROM RESULT T1 GROUP BY ITEM_ID // group by操作表示按照ITEM_ID字段的值进行分组,有相同的ITEM_ID值放到一起 ORDER BY CLICK_EMP_RATE DESC;//按照点击购买转化率降序排序
create table match_data( user_id int, age_range int, gender int, merchant_id int, label int, activity_log varchar(1000)
) row format delimited fields terminated by ',';
3.2查看样例数据
原始数据表:train_format2.csv数据
user_id age_range gender merchant_id label
activity_log
34176
6
0
34176
6
0
944
-1 408895:1505:7370:1107:0
412
-1 17235:1604:4396:0818:0#954723:1604:4396:0818:0#275437:1604:4396:0818:0#236488:1505:4396:1024:0
4.2.4数据分析—创建购买量表
创建EMPTION表,写入商品购买次数top100数据 分析:商品id、购买、top100 表:商品id、购买量统计、100条数据
CREATE TABLE EMPTION AS //创建表EMPTION,代表购买量 SELECT ITEM_ID,COUNT(1) COUNT_1 //对所有的行ITEM_ID相同的进行统计 FROM RESULT WHERE ATIION_TYPE = '2' //限定条件ATIION_TYPE = '2' GROUP BY ITEM_ID // group by操作表示按照ITEM_ID字段的值进行分组,有相同的ITEM_ID值放到一起 ORDER BY COUNT_1 DESC //按照统计结果全局降序排序 LIMIT 100; //限制数据100行
3.4hive基本操作—导入数据
将root下的train_format2.csv数据导入到创建的match_data表中
load data local inpath '/root/train_format2.csv' overwrite into table match_data;
查看match_data数据
中间表1:初步创建表将activity_log中以‘#’分割的数据拆成多行数据
user_id 34176 34176 34176 34176 34176
age_range 6 6 6 6 6
gender 0 0 0 0 0
merchant_id 944 412 412 412 412
label -1 -1 -1 -1 -1
Baidu Nhomakorabea
activity_log 408895:1505:7370:1107:0 17235:1604:4396:0818:0 954723:1604:4396:0818:0 275437:1604:4396:0818:0 236488:1505:4396:1024:0
中间表2:将拆成行的数据activity_log中以‘:’分割的数据拆分成元素
2018
大数据竞赛培训之数据分析
讲师:赵利平
日期:2018年11月11日
1
原理介绍
2
学习目标
目录
CONTENTS
3
前期准备
4
数据分析
01 原理介绍
原理介绍
本次数据分析是采用Hive进行的, Hive是建立在 Hadoop 上的数据仓库基础 构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是 一种可以存储、查询和分析存储在Hadoop 中的大规模数据的机制。
CREATE TABLE COLLECT AS //创建表COLLECT,代表收藏量 SELECT ITEM_ID,COUNT(1) COUNT_1 //对所有的行ITEM_ID相同的进行统计 FROM RESULT WHERE ATIION_TYPE = '3' //限定条件ATIION_TYPE = '3' GROUP BY ITEM_ID // group by操作表示按照ITEM_ID字段的值进行分组,有相同的ITEM_ID值放到一起 ORDER BY COUNT_1 DESC //按照统计结果全局降序排序 LIMIT 100; //限制数据100行
Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查 询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。
Hive的Sql语 句
解释为mapreduce
启动hive client(master上) bin/hive
查看数据库列表 show databases;
3.1hive基本操作
建数据库 create database hongya; //创建数据库hongya show databases; //查看数据库,发现有库hongya use hongya; //使用hongya数据库
创建ADD_TO_CART表,写入商品点击次数top100数据 分析:商品id、加入购物车、top100 表:商品id、加入购物车量统计、100条数据
CREATE TABLE ADD_TO_CART AS //创建表ADD_TO_CART,代表加入购物车量 SELECT ITEM_ID,COUNT(1) COUNT_1//对所有的行ITEM_ID相同的进行统计 FROM RESULT WHERE ATIION_TYPE = '1' //限定条件ATIION_TYPE = '1' GROUP BY ITEM_ID // group by操作表示按照ITEM_ID字段的值进行分组,有相同的ITEM_ID值放到一起 ORDER BY COUNT_1 DESC //按照统计结果全局降序排序 LIMIT 100 ; //限制数据100行
1107
0
818
0
3.3hive操作--创建表
创建比赛数据表match_data,要求表结构与提供的数据结构一样,信息包
含用户iduser_id、用户性别gender、商家唯一id merchant_id、购物者标签
label,均为为int类型,用户与商家交互信息activity_log为varchar类型。
CREATE TABLE ADD_EMP AS //创建ADD_EMP P表 SELECT ITEM_ID,SUM(IF(ATIION_TYPE = '1',1,0))/COUNT(1) CLICK_EMP_RATE //加入购物车总和除以该
4.1数据分析—中间表
CREATE TABLE RESULT AS //创建RESULT表并获取match_data的USER_ID, ITEM_ID, BRAND_ID, ATIION_TYPE SELECT USER_ID, SPLIT(LOG_SPLIT,':')[0] AS ITEM_ID, //将拆成行的数据以:为分隔符筛选字符串第0位 SPLIT(LOG_SPLIT,':')[2] AS BRAND_ID, //将拆成行的数据以:为分隔符筛选字符串第2位 SPLIT(LOG_SPLIT,':')[4] AS ATIION_TYPE //将拆成行的数据以:为分隔符筛选字符串第4位 FROM (SELECT USER_ID,LOG_SPLIT FROM match_data LATERAL VIEW EXPLODE(SPLIT(ACTIVITY_LOG,‘#’)) ACTIVITY_LOG AS LOG_SPLIT ) T1;
//lateral view和split, explode一起使用,以#为分隔符将一列数据拆成多行数据
4.1数据分析—中间表
查看表RESULT中前100行数据
select * from RESULT limit 100;//查看前100行数据
4.2.1数据分析—创建点击量表
创建click表,写入商品点击次数top100数据 分析:商品id、点击、top100 表:商品id、点击量统计、100条数据
4.2.2数据分析—创建加入购物车表 查看ADD_TO_CART表中所有数据,第一列代表商品id,第二列代表统计量
select * from ADD_TO_CART;
4.2.3数据分析—创建收藏量表
创建click表,写入商品收藏次数top100数据 分析:商品id、收藏、top100 表:商品id、收藏量统计、100条数据
user_id 34176 34176
age_range 6 6
gender 0 0
merchant_id 944 412
label -1 -1
item_id
408895 17235
category _id 1505 1604
brand_id 7370 4396
time_stamp action_type
4.2.4数据分析—创建购买量表
查看表EMPTION中所有数据,第一列表示商品id,第二列代表购买量
select * from EMPTION;
4.3.1数据分析—点击购买转化率计算
创建商品点击购买转化率表,并按照降序排列 分析:商品id、点击购买转化率、降序排列 表:商品id、转化率、降序
4.3.1数据分析—点击购买转化率计算
查看表CLICK_EMP中前100行数据,第一列数据为item_id,第二列数据为点击购
买转化率。 select * from CLICK_EMP limit 100
4.3.2数据分析—加入购物车转化率计算
创建商品加入购物车购买转化率表,并按照降序排列 分析:商品id、加入购物车购买转化率、降序排列 表:商品id、转化率、降序