大数据仓库技术实训任务3

大数据仓库实训-任务3

淘宝双11数据分析与预测

案例简介

淘宝双11数据分析与预测课程案例,涉及数据预处理、存储、查询和可视化分析等数据处理全流程所涉及的各种典型操作,涵盖Linux、MySQL、Hadoop、Hive等系统和软件的安装和使用方法。通过本案例,将有助于学生综合运用大数据课程知识以及各种工具软件,实现数据分析操作。

案例目的

  1. 熟悉Linux系统、MySQL、Hadoop、Hive等系统和软件的安装和使用;
  2. 了解大数据处理的基本流程;
  3. 熟悉数据预处理方法;
  4. 熟悉使用hive进行数据分析处理。

时间安排

3天

预备知识

需要案例使用者,已经学习过大数据相关课程,了解大数据相关技术的基本概念与原理,了解Windows操作系统、Linux操作系统、大数据处理架构Hadoop的关键技术及其基本原理、数据仓库概念与原理、关系型数据库概念与原理等相关知识。

硬件要求

本案例可以在单机上完成,也可以在集群环境下完成。

软件工具

本案例所涉及的系统及软件:

  1. Linux系统
  2. MySQL
  3. Hadoop
  4. Hive

……

数据集

淘宝购物行为数据集 (5000万条记录,数据有偏移,不是真实的淘宝购物交易数据,但是不影响学习)

案例任务

  1. 安装Linux操作系统
  2. 安装关系型数据库MySQL
  3. 安装大数据处理框架Hadoop
  4. 安装数据仓库Hive
  5. 对文本文件形式的原始数据集进行预处理
  6. 把文本文件的数据集导入到数据仓库Hive中
  7. 对数据仓库Hive中的数据进行查询分析

实验步骤

步骤零:实验环境准备
步骤一:本地数据集上传到数据仓库Hive
步骤二:Hive数据分析
步骤三:数据可视化分析(可选)

每个实验步骤所需要的知识储备、训练技能和任务清单如下:

步骤零:实验环境准备

所需知识储备 Windows操作系统、Linux操作系统、大数据处理架构Hadoop的关键技术及其基本原理、列族数据库HBase概念及其原理、数据仓库概念与原理、关系型数据库概念与原理
训练技能 操作系统安装、虚拟机安装、Linux基本操作、Hadoop安装、Hive安装等
任务清单 1. 安装Linux系统;2. 安装Hadoop;3. 安装MySQL;4. 安装Hive

步骤一:本地数据集上传到数据仓库Hive

所需知识储备 Linux系统基本命令、Hadoop项目结构、分布式文件系统HDFS概念及其基本原理、数据仓库概念及其基本原理、数据仓库Hive概念及其基本原理
训练技能 Hadoop的安装与基本操作、HDFS的基本操作、Linux的安装与基本操作、数据仓库Hive的安装与基本操作、基本的数据预处理方法
任务清单 1. 安装Linux系统;2. 数据集下载与查看;3. 数据集预处理;4. 把数据集导入分布式文件系统HDFS中;5. 在数据仓库Hive上创建数据库

步骤二:Hive数据分析

所需知识储备 数据仓库Hive概念及其基本原理、SQL语句、数据库查询分析
训练技能 数据仓库Hive基本操作、创建数据库和表、使用SQL语句进行查询分析
任务清单 1. 启动Hadoop和Hive;2. 创建数据库和表;3. 简单查询分析;4. 查询条数统计分析;5. 关键字条件查询分析;6. 根据用户行为分析;7. 用户实时查询分析等

步骤零:实验环境准备

安装的相应的Linux,Hadoop,MySQL,Hive等。

步骤一:本地数据集上传到数据仓库Hive

任务清单:

  • 数据集下载与查看
  • 数据集预处理
  • 把数据集导入分布式文件系统HDFS中
  • 在数据仓库Hive上创建数据库

任务步骤:

本案例采用的数据集压缩包为data_format.zip,该数据集压缩包是淘宝2015年双11前6个月(包含双11)的交易数据(交易数据有偏移,但是不影响实验的结果),里面包含3个文件,分别是用户行为日志文件user_log.csv 、回头客训练集train.csv 、回头客测试集test.csv。数据集已在案例任务打包文件中。

下面列出这3个文件的数据格式定义:

用户行为日志user_log.csv,日志中的字段定义如下:

  • user_id | 买家id

  • item_id | 商品id

  • cat_id | 商品类别id

  • merchant_id | 卖家id

  • brand_id | 品牌id

  • month | 交易时间:月

  • day | 交易时间:日

  • action | 行为,取值范围{0,1,2,3},0表示点击,1表示加入购物车,2表示购买,3表示关注商品

  • age_range | 买家年龄分段:1表示年龄<18,2表示年龄在[18,24],3表示年龄在[25,29],4表示年龄在[30,34],5表示年龄在[35,39],6表示年龄在[40,49],7和8表示年龄>=50,0和NULL则表示未知

  • gender | 性别:0表示女性,1表示男性,2和NULL表示未知

  • province| 收货地址省份

回头客训练集train.csv和回头客测试集test.csv,训练集和测试集拥有相同的字段,字段定义如下:

  • user_id | 买家id

  • age_range | 买家年龄分段:1表示年龄<18,2表示年龄在[18,24],3表示年龄在[25,29],4表示年龄在[30,34],5表示年龄在[35,39],6表示年龄在[40,49],7和8表示年龄>=50,0和NULL则表示未知

  • gender | 性别:0表示女性,1表示男性,2和NULL表示未知

  • merchant_id | 商家id

  • labe- | 是否是回头客,0值表示不是回头客,1值表示回头客,-1值表示该用户已经超出我们所需要考虑的预测范围。NULL值只存在测试集,在测试集中表示需要预测的值。

接下来请操作以下内容。

1. 首先建立一个用于运行本案例的目录:

1)在/root目录下建立一个新的目录dbtaobao

image-20210706092054262

3)dbtaobao下面创建一个dataset目录,用于保存数据集。

image-20210706091000467

2. 数据集的预处理

1)user_log.csv的第一行都是字段名称,我们在文件中的数据导入到数据仓库Hive中时,不需要第一行字段名称,因此,这里在做数据预处理时,请删除文件第一行记录,即字段名称。()

image-20210706090720414

3.获取数据集中双11的前10000条数据

由于数据集中交易数据太大,这里只截取数据集中在双11的前10000条交易数据作为小数据集small_user_log.csv。

1)在/root/dbtaobao/dataset目录下面通过vim建立一个脚本文件名叫predeal.sh,请在这个脚本文件中加入下面代码并保存:

image-20210706092546114

之后在dataset目录下应有以下文件:

image-20210706092708974

4. 上传文件到分布式文件系统HDFS中

1)启动Hadoop。

image-20210706092931927

3)把Linux本地文件系统中的small_user_log.csv上传到分布式文件系统HDFS的“/dbtaobao/dataset/user_log”目录下。

image-20210706093427753

5. small_user_log.csv中数据导入数据仓库Hive

1)启动MySQL,启动Hive,进入hive交互界面,创建一个新的数据库dbtaobao。

大数据仓库技术实训任务3

image-20210706094028312

image-20210706095222481

步骤二:Hive数据分析

任务清单

  • 启动Hadoop和Hive

  • 创建数据库和表

  • 简单查询分析

  • 查询条数统计分析

  • 关键字条件查询分析

  • 关联查询,联合查询分析

  • 函数查询分析

  • 根据用户行为分析

  • 用户实时查询分析等

接下来请操作以下内容。

注意本步骤需要在MySQL、Hadoop和Hive三者都启动的前提下进行。

1. Hive中简单查询分析

1)使用dbtaobao数据库,显示数据库中所有表,查看user_log表的简单结构

image-20210706095805585

image-20210706100904182

4)查询user_log表前20个交易日志中购买商品时的时间和商品的种类。

image-20210706101126828

2)统计出user_log表中总共有多少客户(统计不重复的user_id)。(358)

image-20210706102350084

4)统计购买了商品类别为1280号的女性有多少位。(2)

image-20210706103552898

3. Hive中关键字条件查询分析

1)根据user_log表查询双11那天有多少人关注了商品(注意人要去重)。(60)

image-20210706104252480

4. Hive中根据用户行为分析

1)查询有多少用户在双11购买了商品。(注意去重)(358)

image-20210706105821499

3)查询在该网站购买商品超过5次的用户id

image-20210706110613448

2)将user_log中统计出的品牌和对应购买了该品牌的次数的数据传入表scan中,并按照brand_id升序排序,如下图所示:

image-20210706112045723

6. 预处理test.csv数据集

这里列出test.csv和train.csv中字段的描述,字段定义如下:

  • user_id | 买家id

  • age_range | 买家年龄分段:1表示年龄<18,2表示年龄在[18,24],3表示年龄在[25,29],4表示年龄在[30,34],5表示年龄在[35,39],6表示年龄在[40,49],7和8表示年龄>=50,0和NULL则表示未知

  • gender | 性别:0表示女性,1表示男性,2和NULL表示未知

  • merchant_id | 商家id

  • labe- | 是否是回头客,0值表示不是回头客,1值表示回头客,-1值表示该用户已经超出我们所需要考虑的预测范围。NULL值只存在测试集,在测试集中表示需要预测的值。

请进行以下操作:

1)这里需要预先处理test.csv数据集,把这test.csv数据集里label字段表示-1值剔除掉,保留需要分析的数据.并假设需要分析的数据中label字段均为1。在/root/dbtaobao/dataset目录下使用vim编辑器新建一个predeal_test.sh脚本文件,请在这个脚本文件中加入下面代码。

来源:陈希瑞

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月4日
下一篇 2021年6月4日

相关推荐