目录

开发环境

数据描述

功能需求

数据准备

数据清洗

用户行为分析

找出有价值的用户


开发环境

Hadoop+Hive+Spark+HBase

启动Hadoop:start-all.sh

启动zookeeper:zkServer.sh start

启动Hive

nohup hiveserver2 1>/dev/null 2>&1 &

beeline -u jdbc:hive2://192.168.152.192:10000

启动Hbase

start-hbase.sh

hbase shell

启动Spark:spark-shell

数据描述

数据描述 UserBehavior 是阿里巴巴提供的一个淘宝用户行为数据集。本数据集包含了 2017-09-11 至 2017-12-03 之间有行为的约 5458 位随机用户的所有行为(行为包括点击、购买、加 购、喜欢)。数据集的每一行表示一条用户行为,由用户 ID、商品 ID、商品类目 ID、 行为类型和时间戳组成,并以逗号分隔。关于数据集中每一列的详细描述如下具体字段 说明如下:

功能需求

数据准备

请在 HDFS 中创建目录/data/userbehavior,并将 UserBehavior.csv 文件传到该目录。通过 HDFS 命令查询出文档有多少行数据。

hdfs dfs -mkdir -p /data/userbehavior

hdfs dfs -put ./UserBehavior.csv /data/userbehavior

hdfs dfs -cat /data/userbehavior/UserBehavior.csv | wc -l

数据清洗

①请在 Hive 中创建数据库 exam

create database exam;

②请在 exam 数据库中创建外部表 userbehavior,并将 HDFS 数据映射到表中

create external table userbehavior
(user_id int,item_id int,category_id int,behavior_type string,`time` bigint
)
row format delimited fields terminated by ',' stored as textfile location '/data/userbehavior/';

③请在 HBase 中创建命名空间 exam,并在命名空间 exam 创建 userbehavior 表,包含一个列簇 info

hbase(main):007:0> create_namespace 'exam' hbase(main):008:0> create 'exam:userbehavior','info'

④请在 Hive 中创建外部表 userbehavior_hbase,并映射到 HBase 中,并将数 据加载到 HBase 中

create external table if not exists userbehavior_hbase(user_id int,item_id int,category_id int,behavior_type string,time bigint
)
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
with serdeproperties ("hbase.columns.mapping"=":key,info:item_id,info:category_id,info:behavior_type,info:time")
tblproperties ("hbase.table.name"="exam:userbehavior");//开始映射
insert into userbehavior_hbase select * from userbehavior;

⑤请在 exam 数据库中创建内部分区表 userbehavior_partitioned(按照日期进行分区), 并通过查询 userbehavior 表将时间戳格式化为”年-月-日 时将数据插 入至 userbehavior_partitioned 表中,例如下图

//设置分区
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;//创建分区表
create table userbehavoir_partitioned(user_id int,item_id int,category_id int,behavior_type string,time string
)
partitioned by (dt string)stored as orc ;//按格式插入分区表中
insert into userbehavoir_partitioned partition (dt)
select user_id,item_id,category_id,behavior_type,from_unixtime(time,"YYYY-MM-dd HH:mm:ss") as time,from_unixtime(time,"YYYY-MM-dd")as dt
from userbehavior;show partitions userbehavoir_partitioned;
select * from userbehavoir_partitioned;

用户行为分析

请使用 Spark,加载 HDFS 文件系统 UserBehavior.csv 文件,并分别使用 RDD 完成以下 分析。  统计 uv 值(一共有多少用户访问淘宝)

scala> val fileRdd=sc.textFile("/data/userbehavior")//数据进行处理
scala> val userbehaviorRdd=fileRdd.map(x=>x.split(",")).filter(x=>x.length==5)//统计不重复的个数
scala> userbehaviorRdd.map(x=>x(0)).distinct.count
res8: Long = 5458  

分别统计浏览行为为点击,收藏,加入购物车,购买的总数量

scala> userbehaviorRdd.map(x=>(x(3),1)).reduceByKey(_+_).collect.foreach(println)
(cart,30888)
(buy,11508)
(pv,503881)
(fav,15017)

找出有价值的用户

使用 SparkSQL 统计用户最近购买时间。以 2017-12-03 为当前日期,计算时间范围 为一个月,计算用户最近购买时间,时间的区间为 0-30 天,将其分为 5 档,0-6 天,7-12 4 天,13-18 天,19-24 天,25-30 天分别对应评分 4 到 0

scala> spark.sql("""| select|  t1.user_id,|       ( case when t1.diff between 0 and 6 then 4|             when t1.diff between 7 and 12 then 3|             when t1.diff between 13 and 18 then 2|             when t1.diff between 19 and 24 then 1|             when t1.diff between 25 and 30 then 0|             else null end|           ) level| from| (select user_id, datediff('2017-12-03',max(dt)) as diff, max(dt) as maxNum| from exam.userbehavior_partitioned where dt>'2017-11-03' and behavior_type='buy'| group by user_id) t1| """).show

使用 SparkSQL 统计用户的消费频率。以 2017-12-03 为当前日期,计算时间范围为 一个月,计算用户的消费次数,用户中消费次数从低到高为 1-161 次,将其分为 5 档,1-32,33-64,65-96,97-128,129-161 分别对应评分 0

scala> spark.sql("""| with|   t1 as (select user_id, count(user_id) num| from exam.userbehavior_partitioned| where dt between '2017-11-03' and '2017-12-03'|        and behavior_type='buy'| group by user_id)| select t1.user_id,|     (|         case when t1.num between 1 and 32 then 0|         when t1.num between 33 and 64 then 1|         when t1.num between 65 and 96 then 2|         when t1.num between 97 and 128 then 3|         when t1.num between 129 and 161 then 4|         else null end|     ) level| from t1| """).show

大数据实战 --- 淘宝用户行为数据分析相关推荐

  1. MySQL数据项目分析实战——淘宝用户行为分析

    MySQL数据项目分析实战--淘宝用户行为分析 一.项目背景 二.项目目标 2.1分析目的 2.2分析维度 三.数据的收集与整理 3.1数据来源 3.2数据说明 3.3理解数据 3.4导入数据 四.数 ...

  2. mysql 时间段内的周末_淘宝用户行为数据分析(MySQL)

    利用MySQL对淘宝用户行为数据进行分析.分析步骤如下: 1 提出问题 2 理解数据 3 数据清洗 4 构建模型 5 结论 6 建议 淘宝是目前国内最大的电商平台,人们网购的主要渠道之一.买家通过搜索 ...

  3. 天池-淘宝用户行为数据分析(python+Tableau)

    天池-淘宝用户行为数据分析(python+Tableau) 一.背景 ​ 用户行为分析可以让产品更加详细.清楚地了解用户的行为习惯,从而找出网站.app.推广渠道等产品存在的问题,有助于产品发掘高转化 ...

  4. 大数据实战-callLog项目(通话记录数据分析)之数据生产

    文章目录 前言 生成基础数据 Maven依赖 姓名-手机号列表 时间维度表 自动随机生成 生成时间戳 生成一定范围内的long数据 代码 调用演示 获得随机的时间戳 代码 调用示例 生成一行记录 打包 ...

  5. 基于MySQL的淘宝用户行为数据分析

    前言 本文针对淘宝app的运营数据,以行业常见指标对用户行为进行分析,包括UV.PV.新增用户分析.漏斗流失分析.留存分析.用户价值分析.复购分析等内容,使用的分析工具以MySQL为主,涉及分组汇总, ...

  6. 案例:淘宝用户行为数据分析(SQL实现)

    一.项目介绍 本文针对淘宝APP的运营数据,使用阿里云天池上公开的数据集,以行业常见指标对用户行为进行分析,主要工具为MySQL,涉及分组汇总,引用变量,视图,关联查询等内容,可视化工具为excel和 ...

  7. 【毕业设计】大数据淘宝用户行为数据分析与可视化 - flink

    文章目录 0 前言 1.环境准备 1.1 flink 下载相关 jar 包 1.2 生成 kafka 数据 1.3 开发前的三个小 tip 2.flink-sql 客户端编写运行 sql 2.1 创建 ...

  8. 淘宝双11数据分析与预测汇总

    国庆假期留在学校做了一下林子雨博士的大数据实验--淘宝双11数据分析与预测,虽然教程写得很详细,但自己还是踩了很多坑,现在记录下来,希望给别人一点帮助. 淘宝双11数据分析与预测实验链接:http:/ ...

  9. 淘宝双11数据分析与预测--“坑点”汇总

    国庆假期留在学校做了一下林子雨博士的大数据实验--淘宝双11数据分析与预测,虽然教程写得很详细,但自己还是踩了很多坑,现在记录下来,希望给别人一点帮助. 淘宝双11数据分析与预测实验连接:点击这里 问 ...

最新文章

  1. 使用RFECV、递归特征消除 (Recursive Feature Elimination)进行特征筛选详解及实战
  2. ubuntu笔记(二) ubuntu上安装 mysql
  3. 用WDM开发USB驱动程序
  4. lcd和服务器同时显示温度,为什么LCD1602不能同时显示温度和时间?
  5. weblogic cluster error-----Could not= open connection with host: 127.0.0.1
  6. 【安全工具】projectdiscover之naabu 端口扫描器源码学习
  7. 加载中...loading... 图片_搞笑图片:小子这就是你单身的原因...
  8. vue-cli详细教程
  9. php url标准化,seo优化教程:链接url标准化操作?
  10. .net core 图片合并,图片水印,等比例缩小,SixLabors.ImageSharp
  11. 关于ROS的设置问题
  12. windows环境下sqlmap安装教程及问题详解
  13. 手机安装W ndows7镜像,Windows7专业版
  14. 对996的一些看法与个人价值实现
  15. YBC携手IZO打造创业家的摇篮
  16. kaldi理解WFST,HCLG,lattice
  17. 解析steam教育中的技术赋能
  18. 字符输出流 (Write)
  19. 安卓购物商城源码(服务端+客户端)
  20. java资源使用效率较高,Java 进程资源使用率较高问题定位

热门文章

  1. WebGL入门(二十)-三维视图通过透视投影矩阵创建远小近大的两排三角形
  2. Common-pool源码编译——小例子
  3. Java中的Type接口和Class类区别和联系
  4. golang 递归方式解析json串
  5. 使用示波器学习变压器
  6. 5 HTML标签基础
  7. 对于蓝竹笋的初步研(乱)究(搞)
  8. source music play list 11-26 (edit 12-6 by clin003 )
  9. 华为鸿蒙系统超级终端,华为发布鸿蒙OS Connect 打造鸿蒙硬件“超级终端”概念...
  10. USB Mass Storage 6.7 The Thirteen Cases章节的理解