0


大数据:淘宝用户行为分析完整报告(图片拿完整文件)

目录

******一 **淘宝用户行为分析

1、项目背景

随着各大电商平台的发展,电商平台的获客成本也在不断增加。在此情况下,基于用户数据分析来为企业经营提供决策、了解各个渠道的转化率是很有必要的。在⼤数据的不断发展下,⼤数据成为了⼀个热门的⾏业,应⽤在各个领域。⽤户⾏为分析就是其中的⼀个应⽤⽅向。另外智能设备的快速发展,⼈们的⽣活已经离不开智能设备了。⼈们花费在智能设备的⼤部分时间在购物平台上⾯,⽽我们在购物平台上浏览信息会产⽣不同的信息来反应我们的⾏为。

⽤户⾏为信息在电商平台⼗分重要,通过⽤户⾏为分析,能够了解⽤户的情况,⽐如:他们不同的⽣活习惯、⽂化背景、⽣活位置等等这些信息都会影响他们的⾏为。而⽤户⾏为信息指的是在获得⽹站或APP等平台访问量基本数据的情况下,对其中的数据进⾏统计、分析,从中发现⽤户访问⽹站或APP等平台的规律来建⽴、进⼀步修正、或者重新指定⽹络营销策略等等进⽽实现精细化运营。

2、项目意义

对互联⽹⾦融、电商平台、线上教育、证券、短视频等这些⾏业的产品来说,⽤户⾏为数据⼗分重要。理解用户需求,从而用户展开针对性的活动,提高电商的运营品质,是电商在发展中的一个重要环节。通过此项目学习电商大数据分析的基本方法与相关指标。在这一背景下,对淘宝用户行为数据进行分析,⽬的在于⾃定义留存分析、精细化渠道质量评估、产品分析、精准营销、设计更有针对性、落地性的运营方案,有效增加营收。

******二 **项目展示

1、项目工程

idea中项目工程展示,如图2.1所示

图2.1

2、运行结果

每小时销量饼状图如图2.2所示:

图2.2

各品种订单数柱状图如图2.3和图2.4所示:

图2.3

图2.4

各品种订单数占比折线图如图2.5所示:

图2.5

商品购买行为折线图如图2.6所示:

图2.6

商品购买行为柱状图如图2.7所示:

图2.7

商品购买行为转化率饼状图如图2.8所示:

图2.8

商品2022年12月的top榜如图2.9所示:

图2.9

商品2022年12月的top榜折线图如图2.10所示:

图2.10

  1. 项目上线流程

将开发好的项目部署到服务器。

通过docker分别启动tomcat、mysql容器,navicat将数据导入到服务器数据库、项目部署到tomcat。

docker cp ZebraProject01_war_exploded tomcat:usr/local/tomcat/webapps/

对应的项目docker容器如图2.11所示:

图2.11

对应的数据库如图2.12所示

图2.12

访问地址:http://124.223.111.27:2023/ZebraProject01_war_exploded/servlet/ResServlet

项目上线成功如图2.13所示

图2.13

******三 **项目前置工作

1、数据获取

****** 1)数据接口******

本次获取的淘宝用户购物行为数据集的来源为阿里云天池数据集,

  • 淘宝用户购物行为数据集 :
  • 淘宝用户购物行为数据集_数据集-阿里云天池 (aliyun.com)

****** 2)**数据展示

数据集small_user.csv如图3.1所示

图3.1

2、项目工程搭建****

1)新建目录

在HDFS上新建目录order:hdfs dfs -mkdir /order/ 如图3.2所示

图3.2

2)上传数据

 上传数据到HDFS目录下:hdfs dfs -put small_user.csv /order/ 如图3.3及图3.4所示

图3.3

图3.4

** 数据清洗******

1、为数据集建表

启动Hadoop,如图4.1所示

图4.1

启动hive

1)、hive --service metastore &

2)、hive

如图4.2所示

图4.2

为数据集small_user.csv建立ods_order表

create external table ods_order(

user_id string,

item_id string,

behavior_type string,

user_geohash string,

item_category string,

time string)ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' location '/order/';

如图4.3所示

图4.3

2、数据查询

查询ods_order表前十条数据

select * from ods_order limit 10;如图4.4所示

图4.4

3、建立清洗表

 user_geohash列地理位置的数据大多是空值 NULL ,且位置信息被加密处理了,难以研究。所以不选择该列分析,即直接删除。

将user_geohash字段去除掉,合并成新表ods_order_tmp

create table ods_order_tmp as select user_id,item_id,behavior_type,item_category,time from ods_order;如图4.5及图4.6所示

图4.5

图4.6

4、清洗结果****

查询清醒之后的前十条的数据的结果

select * from ods_order_tmp limit 10;

如图4.7所示

图4.7

5、数据对比

数据清洗前后10条数据的对比,如图4.8所示

图4.8

Hive数据分析****

****1、 ****分析各个时段的订单数

create table result1 as select substr(time,11,13) as hour,count(1) from ods_order_tmp where substr(time,11,13) is not null group by substr(time,11,13) having count(1)!=1;

hive创建表写入数据代码执行成功如图5.1所示

图5.1

****2、 ****分析各品类的订单数

create table result2 as select item_category,count(1) counts from ods_order_tmp group by item_category;

hive创建表写入数据代码执行成功如图5.2所示。

图5.2

****3、 ****分析各个购买行为的人数

create table result3 as select behavior_type,count(distinct user_id) counts from ods_order_tmp group by behavior_type;

hive创建表写入数据代码执行成功如图5.3所示。

图5.3

*4*****、 ****分析 behavior_type 从1到2的转化率

Create table result4_1 as select 'ratio' as ratio,count(1) counts from ods_order_tmp where behavior_type=1;

hive创建表写入数据代码执行成功如图5.4所示。

图5.4

Create table result4_2 as select 'ratio' as ratio,count(1) counts from ods_order_tmp where behavior_type=2;

hive创建表写入数据代码执行成功如图5.5所示

图5.5

Create table result4_3 as select 'ratio' as ratio,count(1) counts from ods_order_tmp where behavior_type=3;

hive创建表写入数据代码执行成功如图5.6所示。

图5.6

Create table result4_4 as select 'ratio' as ratio,count(1) counts from ods_order_tmp where behavior_type=4;

hive创建表写入数据代码执行成功如图5.7所示。

图5.7

create table result4 as select '1-2' as key,round(a.counts/b.counts,2) ratio from result4_2 a join result4_1 b on a.ratio=b.ratio;

hive创建表写入数据代码执行成功如图5.8所示。

图5.8

create table result6 as select '1-3' as key,round(a.counts/b.counts,2) ratio from result4_3 a join result4_1 b on a.ratio=b.ratio;

hive创建表写入数据代码执行成功如图5.9所示。

图5.9

create table result7 as select '1-4' as key,round(a.counts/b.counts,2) ratio from result4_4 a join result4_1 b on a.ratio=b.ratio;

hive创建表写入数据代码执行成功如图5.10所示。

图5.10

*5*****、 ****分析 2022年12月的top10品类

create table result5 as select item_category,count(1) counts from ods_order_tmp group by item_category order by counts desc limit 10;

hive创建表写入数据代码执行成功如图5.11及图5.12所示。

图5.11

图5.12

数据导出

1、Mysql建库****

创建数据库test1

create database test1;

2、Mysql建表****

******1) **分析各个时段的订单数

MYSQL的result1建表命令:

CREATE TABLE result1 (

hour varchar(20) DEFAULT NULL,

counts int(10) DEFAULT NULL

) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

2) 分析各品类的订单数

MYSQL的result2建表命令:

CREATE TABLE result2 (

item_category varchar(20) DEFAULT NULL,

counts int(10) DEFAULT NULL

) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

3) 分析各个购买行为的人数

MYSQL的result3建表命令:

CREATE TABLE result3 (

behavior_type varchar(20) DEFAULT NULL,

counts int(10) DEFAULT NULL

) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

4)分析 behavior_type 从1到2的转化率

MYSQL的result4、result6和result7建表命令:

CREATE TABLE result4 (

key varchar(20) DEFAULT NULL,

ratio decimal(2,2) DEFAULT NULL

) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

CREATE TABLE result6 (

key varchar(20) DEFAULT NULL,

ratio decimal(2,2) DEFAULT NULL

) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

CREATE TABLE result7 (

key varchar(20) DEFAULT NULL,

ratio decimal(2,2) DEFAULT NULL

) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

5)分析 2022年12月的top10品类

MYSQL的result5建表命令:

CREATE TABLE result5 (

item_category varchar(20) DEFAULT NULL,

counts int(10) DEFAULT NULL

) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

3、Sqoop数据导出****

1)分析各个时段的订单数****

将hive的数据导入MYSQL的result1命令:

sh sqoop export --connect jdbc:mysql://hadoop01:3306/test1 --username root --password root --table result1 --export-dir '/hive/warehouse/result1' --fields-terminated-by '\001';

查询result1表的数据:select * from result1;

查询结果如图6.1所示。

图6.1

2)分析各品类的订单数****

将hive的数据导入MYSQL的result2命令:

sh sqoop export --connect jdbc:mysql://hadoop01:3306/test1 --username root --password root --table result2 --export-dir '/hive/warehouse/result2' --fields-terminated-by '\001';

查询result2表的数据:select * from result2;

查询结果如图6.2所示。

图6.2

3)分析各个购买行为的人数****

将hive的数据导入MYSQL的result3命令:

sh sqoop export --connect jdbc:mysql://hadoop01:3306/test1 --username root --password root --table result3 --export-dir '/hive/warehouse/result3' --fields-terminated-by '\001';

查询result3表的数据:select * from result3;

查询结果如图6.3所示。

图6.3

4)分析 behavior_type 从1到2的转化率****

将hive的数据导入MYSQL的result4、result6和result7命令:

sh sqoop export --connect jdbc:mysql://hadoop01:3306/test1 --username root --password root --table result4 --export-dir '/hive/warehouse/result4' --fields-terminated-by '\001';

sh sqoop export --connect jdbc:mysql://hadoop01:3306/test1 --username root --password root --table result6 --export-dir '/hive/warehouse/result6' --fields-terminated-by '\001';

sh sqoop export --connect jdbc:mysql://hadoop01:3306/test1 --username root --password root --table result7 --export-dir '/hive/warehouse/result7' --fields-terminated-by '\001';

查询result4表的数据:select * from result4;

查询结果如图6.4所示。

图6.4

查询result6表的数据:select * from result6;

查询结果如图6.5所示。

图6.5

查询result7表的数据:select * from result7;

查询结果如图6.6所示。

图6.6

5)分析 2022年12月的top10品类****

将hive的数据导入MYSQL的result5命令:

sh sqoop export --connect jdbc:mysql://hadoop01:3306/test1 --username root --password root --table result5 --export-dir '/hive/warehouse/result5' --fields-terminated-by '\001';

查询result5表的数据:select * from result5;

查询结果如图6.7所示

图6.7

七 可视化的核心代码

  1. Echarts图实现的核心代码

window.onload = function(){

// 基于准备好的dom,初始化echarts图表

var myChart = echarts.init(document.getElementById('main'));

//设置选项

option = {

//标题

title : {text: '每小时的订单数top10',subtext: '',x:'center'},

//提示框

tooltip : {

trigger: 'item', formatter: "{a}
{b} : {c} ({d}%)"},

//图例

   legend: {

orient : 'vertical',x : 'left',

data:['第 22小时','第 21小时','第 20小时','第 23小时','第 19小时','第 14小时','第 15小时','第 10小时','第 13小时','第 11小时','第 16小时','第 12小时','第 00小时','第 18小时','第 17小时']},

//工具箱

      toolbox: {

      show : true,

      feature : {

        mark : {show: true},

        dataView : {show: true, readOnly: false},

        magicType : {

        show: true,

        type: ['pie', 'bar','line']

       },

          restore : {show: true},

          saveAsImage : {show: true}

          }

        },

        //是否启用拖拽重计算特性,默认关闭

        calculable : true,

        //驱动图表生成的数据内容

        series : [{name:'每个小时',type:'pie',radius : '55%',center: ['50%', '60%'],data:[{value:27084, name:'第 22小时'},{value:25834, name:'第 21小时'},{value:22393, name:'第 20小时'},{value:21187, name:'第 23小时'},{value:18487, name:'第 19小时'},{value:14831, name:'第 14小时'},{value:14693, name:'第 15小时'},{value:14172, name:'第 10小时'},{value:14042, name:'第 13小时'},{value:13964, name:'第 11小时'},{value:13669, name:'第 16小时'},{value:13468, name:'第 12小时'},{value:13427, name:'第 00小时'},{value:12979, name:'第 18小时'},{value:12656, name:'第 17小时'}]}]

    };

      // 为echarts对象加载数据

        myChart.setOption(option);

}

  1. MySQL的数据库连接的核心代码
<?xml version="1.0" ?> <c3p0-config> <default-config> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://localhost:3306/test1</property>//数据库的对应连接端口 <property name="user">root</property>//账号为root <property name="password">abc123456</property>//toot账号的密码 </default-config> </c3p0-config>
  1. web.xml的配置代码
<servlet>

<servlet-name>APP01Servlet</servlet-name>

<servlet-class>com.qf.zebra.web.APP01Servlet</servlet-class>

</servlet> <servlet-mapping>

<servlet-name>APP01Servlet</servlet-name>

<url-pattern>/servlet/APP01Servlet</url-pattern>

</servlet-mapping> <servlet>

<servlet-name>ResServlet</servlet-name>

<servlet-class>com.qf.zebra.web.ResServlet</servlet-class>

</servlet> <servlet-mapping>

<servlet-name>ResServlet</servlet-name>

<url-pattern>/servlet/ResServlet</url-pattern>

</servlet-mapping> <welcome-file-list>
<welcome-file>index.jsp</welcome-file>//默认打开的页面
</welcome-file-list>

** 结束语******

不足:本次实训在对数据统计分析时缺少了更多的运用开窗函数进行分析,缺乏了一点实用性,最后选择数据库上,我们组选择了MySQL数据库进行的数据展示的,实时性不高,项目当中也还有许多的不足,需要改进。

此外,我们组的项目是基于hive的离线分析项目,FLUME是用于实时产生的数据。并没有用到FLUME监听数据.也没有通过MR来处理数据,只是在hive里面触发了MR,今后如果还遇到类似的项目我们应该尝试用MR来处理数据

在通过echart进行可视化展示的过程中,由于自身技术水平有限加上时间可能不够,并没有用vue、springboot等框架来进行前后端分离的项目开发,只用了简单的JDBC+SERVLET等技术栈。在平时的项目开发中,一般不应该这样做,耦合性太高了,而且java这边写的很难受,java用字符串拼接的写法十分难受麻烦。正确写法是在后端提供数据接口,前端来通过ehcart渲染到页面上。

总结:通过本次的实训,我们学会了很多的东西,包括一些技术上的东西,比如一些大数据时代的数据库的底层运营,还有一些工具的运用;还有学习上的方法,比如在搭建集群的时候,遇到集群塌了,不要慌,认真逐一排查具体节点,一个一个解决;比如在运用MR处理数据的时候,由于自身机器的原因,本地开发的时候发生了出现了很多bug,但最终在小组成员的相互合作的情况下还有老师的帮助下,终于解决了bug。所以今后学习的时候,遇到报错不要慌,认真看报错的源头,善于发现错误,才会进步,在学习中要多做思维导图来有效的巩固知识点,把学过的东西有效的串联起来。最后感谢各位老师的辛苦付出

目录

******一 **淘宝用户行为分析

1、项目背景

随着各大电商平台的发展,电商平台的获客成本也在不断增加。在此情况下,基于用户数据分析来为企业经营提供决策、了解各个渠道的转化率是很有必要的。在⼤数据的不断发展下,⼤数据成为了⼀个热门的⾏业,应⽤在各个领域。⽤户⾏为分析就是其中的⼀个应⽤⽅向。另外智能设备的快速发展,⼈们的⽣活已经离不开智能设备了。⼈们花费在智能设备的⼤部分时间在购物平台上⾯,⽽我们在购物平台上浏览信息会产⽣不同的信息来反应我们的⾏为。

⽤户⾏为信息在电商平台⼗分重要,通过⽤户⾏为分析,能够了解⽤户的情况,⽐如:他们不同的⽣活习惯、⽂化背景、⽣活位置等等这些信息都会影响他们的⾏为。而⽤户⾏为信息指的是在获得⽹站或APP等平台访问量基本数据的情况下,对其中的数据进⾏统计、分析,从中发现⽤户访问⽹站或APP等平台的规律来建⽴、进⼀步修正、或者重新指定⽹络营销策略等等进⽽实现精细化运营。

2、项目意义

对互联⽹⾦融、电商平台、线上教育、证券、短视频等这些⾏业的产品来说,⽤户⾏为数据⼗分重要。理解用户需求,从而用户展开针对性的活动,提高电商的运营品质,是电商在发展中的一个重要环节。通过此项目学习电商大数据分析的基本方法与相关指标。在这一背景下,对淘宝用户行为数据进行分析,⽬的在于⾃定义留存分析、精细化渠道质量评估、产品分析、精准营销、设计更有针对性、落地性的运营方案,有效增加营收。

******二 **项目展示

1、项目工程

idea中项目工程展示,如图2.1所示

图2.1

2、运行结果

每小时销量饼状图如图2.2所示:

图2.2

各品种订单数柱状图如图2.3和图2.4所示:

图2.3

图2.4

各品种订单数占比折线图如图2.5所示:

图2.5

商品购买行为折线图如图2.6所示:

图2.6

商品购买行为柱状图如图2.7所示:

图2.7

商品购买行为转化率饼状图如图2.8所示:

图2.8

商品2022年12月的top榜如图2.9所示:

图2.9

商品2022年12月的top榜折线图如图2.10所示:

图2.10

  1. 项目上线流程

将开发好的项目部署到服务器。

通过docker分别启动tomcat、mysql容器,navicat将数据导入到服务器数据库、项目部署到tomcat。

docker cp ZebraProject01_war_exploded tomcat:usr/local/tomcat/webapps/

对应的项目docker容器如图2.11所示:

图2.11

对应的数据库如图2.12所示

图2.12

访问地址:http://124.223.111.27:2023/ZebraProject01_war_exploded/servlet/ResServlet

项目上线成功如图2.13所示

图2.13

******三 **项目前置工作

1、数据获取

****** 1)数据接口******

本次获取的淘宝用户购物行为数据集的来源为阿里云天池数据集,

  • 淘宝用户购物行为数据集 :
  • 淘宝用户购物行为数据集_数据集-阿里云天池 (aliyun.com)

****** 2)**数据展示

数据集small_user.csv如图3.1所示

图3.1

2、项目工程搭建****

1)新建目录

在HDFS上新建目录order:hdfs dfs -mkdir /order/ 如图3.2所示

图3.2

2)上传数据

 上传数据到HDFS目录下:hdfs dfs -put small_user.csv /order/ 如图3.3及图3.4所示

图3.3

图3.4

** 数据清洗******

1、为数据集建表

启动Hadoop,如图4.1所示

图4.1

启动hive

1)、hive --service metastore &

2)、hive

如图4.2所示

图4.2

为数据集small_user.csv建立ods_order表

create external table ods_order(

user_id string,

item_id string,

behavior_type string,

user_geohash string,

item_category string,

time string)ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' location '/order/';

如图4.3所示

图4.3

2、数据查询

查询ods_order表前十条数据

select * from ods_order limit 10;如图4.4所示

图4.4

3、建立清洗表

 user_geohash列地理位置的数据大多是空值 NULL ,且位置信息被加密处理了,难以研究。所以不选择该列分析,即直接删除。

将user_geohash字段去除掉,合并成新表ods_order_tmp

create table ods_order_tmp as select user_id,item_id,behavior_type,item_category,time from ods_order;如图4.5及图4.6所示

图4.5

图4.6

4、清洗结果****

查询清醒之后的前十条的数据的结果

select * from ods_order_tmp limit 10;

如图4.7所示

图4.7

5、数据对比

数据清洗前后10条数据的对比,如图4.8所示

图4.8

Hive数据分析****

****1、 ****分析各个时段的订单数

create table result1 as select substr(time,11,13) as hour,count(1) from ods_order_tmp where substr(time,11,13) is not null group by substr(time,11,13) having count(1)!=1;

hive创建表写入数据代码执行成功如图5.1所示

图5.1

****2、 ****分析各品类的订单数

create table result2 as select item_category,count(1) counts from ods_order_tmp group by item_category;

hive创建表写入数据代码执行成功如图5.2所示。

图5.2

****3、 ****分析各个购买行为的人数

create table result3 as select behavior_type,count(distinct user_id) counts from ods_order_tmp group by behavior_type;

hive创建表写入数据代码执行成功如图5.3所示。

图5.3

*4*****、 ****分析 behavior_type 从1到2的转化率

Create table result4_1 as select 'ratio' as ratio,count(1) counts from ods_order_tmp where behavior_type=1;

hive创建表写入数据代码执行成功如图5.4所示。

图5.4

Create table result4_2 as select 'ratio' as ratio,count(1) counts from ods_order_tmp where behavior_type=2;

hive创建表写入数据代码执行成功如图5.5所示

图5.5

Create table result4_3 as select 'ratio' as ratio,count(1) counts from ods_order_tmp where behavior_type=3;

hive创建表写入数据代码执行成功如图5.6所示。

图5.6

Create table result4_4 as select 'ratio' as ratio,count(1) counts from ods_order_tmp where behavior_type=4;

hive创建表写入数据代码执行成功如图5.7所示。

图5.7

create table result4 as select '1-2' as key,round(a.counts/b.counts,2) ratio from result4_2 a join result4_1 b on a.ratio=b.ratio;

hive创建表写入数据代码执行成功如图5.8所示。

图5.8

create table result6 as select '1-3' as key,round(a.counts/b.counts,2) ratio from result4_3 a join result4_1 b on a.ratio=b.ratio;

hive创建表写入数据代码执行成功如图5.9所示。

图5.9

create table result7 as select '1-4' as key,round(a.counts/b.counts,2) ratio from result4_4 a join result4_1 b on a.ratio=b.ratio;

hive创建表写入数据代码执行成功如图5.10所示。

图5.10

*5*****、 ****分析 2022年12月的top10品类

create table result5 as select item_category,count(1) counts from ods_order_tmp group by item_category order by counts desc limit 10;

hive创建表写入数据代码执行成功如图5.11及图5.12所示。

图5.11

图5.12

数据导出

1、Mysql建库****

创建数据库test1

create database test1;

2、Mysql建表****

******1) **分析各个时段的订单数

MYSQL的result1建表命令:

CREATE TABLE result1 (

hour varchar(20) DEFAULT NULL,

counts int(10) DEFAULT NULL

) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

2) 分析各品类的订单数

MYSQL的result2建表命令:

CREATE TABLE result2 (

item_category varchar(20) DEFAULT NULL,

counts int(10) DEFAULT NULL

) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

3) 分析各个购买行为的人数

MYSQL的result3建表命令:

CREATE TABLE result3 (

behavior_type varchar(20) DEFAULT NULL,

counts int(10) DEFAULT NULL

) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

4)分析 behavior_type 从1到2的转化率

MYSQL的result4、result6和result7建表命令:

CREATE TABLE result4 (

key varchar(20) DEFAULT NULL,

ratio decimal(2,2) DEFAULT NULL

) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

CREATE TABLE result6 (

key varchar(20) DEFAULT NULL,

ratio decimal(2,2) DEFAULT NULL

) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

CREATE TABLE result7 (

key varchar(20) DEFAULT NULL,

ratio decimal(2,2) DEFAULT NULL

) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

5)分析 2022年12月的top10品类

MYSQL的result5建表命令:

CREATE TABLE result5 (

item_category varchar(20) DEFAULT NULL,

counts int(10) DEFAULT NULL

) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

3、Sqoop数据导出****

1)分析各个时段的订单数****

将hive的数据导入MYSQL的result1命令:

sh sqoop export --connect jdbc:mysql://hadoop01:3306/test1 --username root --password root --table result1 --export-dir '/hive/warehouse/result1' --fields-terminated-by '\001';

查询result1表的数据:select * from result1;

查询结果如图6.1所示。

图6.1

2)分析各品类的订单数****

将hive的数据导入MYSQL的result2命令:

sh sqoop export --connect jdbc:mysql://hadoop01:3306/test1 --username root --password root --table result2 --export-dir '/hive/warehouse/result2' --fields-terminated-by '\001';

查询result2表的数据:select * from result2;

查询结果如图6.2所示。

图6.2

3)分析各个购买行为的人数****

将hive的数据导入MYSQL的result3命令:

sh sqoop export --connect jdbc:mysql://hadoop01:3306/test1 --username root --password root --table result3 --export-dir '/hive/warehouse/result3' --fields-terminated-by '\001';

查询result3表的数据:select * from result3;

查询结果如图6.3所示。

图6.3

4)分析 behavior_type 从1到2的转化率****

将hive的数据导入MYSQL的result4、result6和result7命令:

sh sqoop export --connect jdbc:mysql://hadoop01:3306/test1 --username root --password root --table result4 --export-dir '/hive/warehouse/result4' --fields-terminated-by '\001';

sh sqoop export --connect jdbc:mysql://hadoop01:3306/test1 --username root --password root --table result6 --export-dir '/hive/warehouse/result6' --fields-terminated-by '\001';

sh sqoop export --connect jdbc:mysql://hadoop01:3306/test1 --username root --password root --table result7 --export-dir '/hive/warehouse/result7' --fields-terminated-by '\001';

查询result4表的数据:select * from result4;

查询结果如图6.4所示。

图6.4

查询result6表的数据:select * from result6;

查询结果如图6.5所示。

图6.5

查询result7表的数据:select * from result7;

查询结果如图6.6所示。

图6.6

5)分析 2022年12月的top10品类****

将hive的数据导入MYSQL的result5命令:

sh sqoop export --connect jdbc:mysql://hadoop01:3306/test1 --username root --password root --table result5 --export-dir '/hive/warehouse/result5' --fields-terminated-by '\001';

查询result5表的数据:select * from result5;

查询结果如图6.7所示

图6.7

七 可视化的核心代码

  1. Echarts图实现的核心代码

window.onload = function(){

// 基于准备好的dom,初始化echarts图表

var myChart = echarts.init(document.getElementById('main'));

//设置选项

option = {

//标题

title : {text: '每小时的订单数top10',subtext: '',x:'center'},

//提示框

tooltip : {

trigger: 'item', formatter: "{a}
{b} : {c} ({d}%)"},

//图例

   legend: {

orient : 'vertical',x : 'left',

data:['第 22小时','第 21小时','第 20小时','第 23小时','第 19小时','第 14小时','第 15小时','第 10小时','第 13小时','第 11小时','第 16小时','第 12小时','第 00小时','第 18小时','第 17小时']},

//工具箱

      toolbox: {

      show : true,

      feature : {

        mark : {show: true},

        dataView : {show: true, readOnly: false},

        magicType : {

        show: true,

        type: ['pie', 'bar','line']

       },

          restore : {show: true},

          saveAsImage : {show: true}

          }

        },

        //是否启用拖拽重计算特性,默认关闭

        calculable : true,

        //驱动图表生成的数据内容

        series : [{name:'每个小时',type:'pie',radius : '55%',center: ['50%', '60%'],data:[{value:27084, name:'第 22小时'},{value:25834, name:'第 21小时'},{value:22393, name:'第 20小时'},{value:21187, name:'第 23小时'},{value:18487, name:'第 19小时'},{value:14831, name:'第 14小时'},{value:14693, name:'第 15小时'},{value:14172, name:'第 10小时'},{value:14042, name:'第 13小时'},{value:13964, name:'第 11小时'},{value:13669, name:'第 16小时'},{value:13468, name:'第 12小时'},{value:13427, name:'第 00小时'},{value:12979, name:'第 18小时'},{value:12656, name:'第 17小时'}]}]

    };

      // 为echarts对象加载数据

        myChart.setOption(option);

}

  1. MySQL的数据库连接的核心代码
<?xml version="1.0" ?> <c3p0-config> <default-config> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://localhost:3306/test1</property>//数据库的对应连接端口 <property name="user">root</property>//账号为root <property name="password">abc123456</property>//toot账号的密码 </default-config> </c3p0-config>
  1. web.xml的配置代码
<servlet>

<servlet-name>APP01Servlet</servlet-name>

<servlet-class>com.qf.zebra.web.APP01Servlet</servlet-class>

</servlet> <servlet-mapping>

<servlet-name>APP01Servlet</servlet-name>

<url-pattern>/servlet/APP01Servlet</url-pattern>

</servlet-mapping> <servlet>

<servlet-name>ResServlet</servlet-name>

<servlet-class>com.qf.zebra.web.ResServlet</servlet-class>

</servlet> <servlet-mapping>

<servlet-name>ResServlet</servlet-name>

<url-pattern>/servlet/ResServlet</url-pattern>

</servlet-mapping> <welcome-file-list>
<welcome-file>index.jsp</welcome-file>//默认打开的页面
</welcome-file-list>

** 结束语******

不足:本次实训在对数据统计分析时缺少了更多的运用开窗函数进行分析,缺乏了一点实用性,最后选择数据库上,我们组选择了MySQL数据库进行的数据展示的,实时性不高,项目当中也还有许多的不足,需要改进。

此外,我们组的项目是基于hive的离线分析项目,FLUME是用于实时产生的数据。并没有用到FLUME监听数据.也没有通过MR来处理数据,只是在hive里面触发了MR,今后如果还遇到类似的项目我们应该尝试用MR来处理数据

在通过echart进行可视化展示的过程中,由于自身技术水平有限加上时间可能不够,并没有用vue、springboot等框架来进行前后端分离的项目开发,只用了简单的JDBC+SERVLET等技术栈。在平时的项目开发中,一般不应该这样做,耦合性太高了,而且java这边写的很难受,java用字符串拼接的写法十分难受麻烦。正确写法是在后端提供数据接口,前端来通过ehcart渲染到页面上。

总结:通过本次的实训,我们学会了很多的东西,包括一些技术上的东西,比如一些大数据时代的数据库的底层运营,还有一些工具的运用;还有学习上的方法,比如在搭建集群的时候,遇到集群塌了,不要慌,认真逐一排查具体节点,一个一个解决;比如在运用MR处理数据的时候,由于自身机器的原因,本地开发的时候发生了出现了很多bug,但最终在小组成员的相互合作的情况下还有老师的帮助下,终于解决了bug。所以今后学习的时候,遇到报错不要慌,认真看报错的源头,善于发现错误,才会进步,在学习中要多做思维导图来有效的巩固知识点,把学过的东西有效的串联起来。最后感谢各位老师的辛苦付出!

参考文献

[1]张岩,王胤祥,胡林生.Hive大数据仓库构建与应用——以大陆在美上市股票数据为例[J].数字通信世界,2021(04):186-187.

[2]何同飞. 基于Hadoop的大数据处理平台设计与实现[D].大连理工大学,2017.

[3]张锐.基于Hive数据仓库的物流大数据平台的研究与设计[J].电子设计工程,2017,25(09):31-35.DOI:10.14022/j.cnki.dzsjgc.2017.09.008.

[4]淘宝双11数据分析与预测课程案例-步骤三:将数据从Hive导入到MySQL--https://dblab.xmu.edu.cn/blog/1367/#more-1367

[5]大数据技术原理与应用 第十四章 基于Hadoop的数据仓库Hive 学习指南--https://dblab.xmu.edu.cn/blog/509/

[6]中国互联网络信息中心(CNNIC)《第32次中国互联网络发展统计报告》[R],2013

[7]中国互联网络信息中心(CNNIC)《第 33 次中国互联网络发展状况统计报告》[R],2014

[8]百度移动 《移动互联网发展趋势报告》[R],2012

[9]李振勇 《商业模式创新与战略转型》[M] 出版社:国家行政学院音像出版社,2009

参考文献

[1]张岩,王胤祥,胡林生.Hive大数据仓库构建与应用——以大陆在美上市股票数据为例[J].数字通信世界,2021(04):186-187.

[2]何同飞. 基于Hadoop的大数据处理平台设计与实现[D].大连理工大学,2017.

[3]张锐.基于Hive数据仓库的物流大数据平台的研究与设计[J].电子设计工程,2017,25(09):31-35.DOI:10.14022/j.cnki.dzsjgc.2017.09.008.

[4]淘宝双11数据分析与预测课程案例-步骤三:将数据从Hive导入到MySQL--https://dblab.xmu.edu.cn/blog/1367/#more-1367

[5]大数据技术原理与应用 第十四章 基于Hadoop的数据仓库Hive 学习指南--https://dblab.xmu.edu.cn/blog/509/

[6]中国互联网络信息中心(CNNIC)《第32次中国互联网络发展统计报告》[R],2013

[7]中国互联网络信息中心(CNNIC)《第 33 次中国互联网络发展状况统计报告》[R],2014

[8]百度移动 《移动互联网发展趋势报告》[R],2012

[9]李振勇 《商业模式创新与战略转型》[M] 出版社:国家行政学院音像出版社,2009

标签: hive hadoop 大数据

本文转载自: https://blog.csdn.net/m0_53656722/article/details/135166685
版权归原作者 attention庄 所有, 如有侵权,请联系我们删除。

“大数据:淘宝用户行为分析完整报告(图片拿完整文件)”的评论:

还没有评论