大数据实战 --- 淘宝用户行为数据分析

这篇具有很好参考价值的文章主要介绍了大数据实战 --- 淘宝用户行为数据分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

开发环境 

数据描述

功能需求

数据准备

数据清洗

用户行为分析

找出有价值的用户


开发环境 

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文章来源地址https://www.toymoban.com/news/detail-421862.html

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

到了这里,关于大数据实战 --- 淘宝用户行为数据分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【TIANCHI】天池大数据竞赛(学习赛)--- 淘宝用户购物行为数据可视化分析

    目录 前言 一、数据集的来源和各个字段的意义 二、数据分析 1.引入库 2.读入数据 3.查看数据数量级 4.PV(Page View)/UV访问量 5.漏斗模型 6.用户购买商品的频次分析。 7.ARPPU(average revenue per paying user)  计算 ARPPU  ARPPU出图 8.复购情况分析 计算用户购买频次 复购周期分析 总结

    2024年02月09日
    浏览(27)
  • 大数据毕设分享 flink大数据淘宝用户行为数据实时分析与可视化

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年01月21日
    浏览(40)
  • python毕设选题 - flink大数据淘宝用户行为数据实时分析与可视化

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月01日
    浏览(45)
  • 【数据分析项目实战】篇1:游戏数据分析——新增、付费和用户行为评估

    目录 0 结论 1 背景介绍 1.1 游戏介绍 1.2 数据集介绍 2 分析思路 3 新增用户分析 3.1 新增用户数: 3.2 每日新增用户数: 3.3 分析 4 活跃度分析 4.1 用户平均在线时长 4.2 付费用户平均在线时长 4.3 日活跃用户(日平均在线时长10min)数及占比 4.4 分析与建议 5 游戏行为分析 5.1 对比

    2023年04月08日
    浏览(80)
  • 基于Python的淘宝行为数据可视化分析

    完成如下商业分析任务,通过数据分析和可视化展示,充分挖掘数据的价值,让数据更好地为业务服务: 流量分析 :PV/UV是多少,通过分析PV/UV能发现什么规律? 漏斗分析 :用户“浏览-收藏-加购-购买”的转化率是怎样的? 用户价值分析 :对电商平台什么样的用户是有价值

    2024年02月10日
    浏览(35)
  • 【项目实战】基于Hadoop大数据电商平台用户行为分析与可视化系统Hive、Spark计算机程序开发

    注意:该项目只展示部分功能,如需了解,评论区咨询即可。 在当今数字化时代,电商行业成为全球商业生态系统的关键组成部分,电商平台已经深入各行各业,影响了人们的购物方式和消费习惯。随着互联网技术的不断发展,电商平台产生了大量的用户数据,包括点击、购

    2024年02月04日
    浏览(88)
  • 大数据实战 --- 美团外卖平台数据分析

    目录 开发环境  数据描述 功能需求 数据准备 数据分析 RDD操作 Spark SQL操作 创建Hbase数据表 创建外部表 统计查询 Hadoop+Hive+Spark+HBase 启动Hadoop :start-all.sh 启动zookeeper :zkServer.sh start 启动Hive : nohup hiveserver2 1/dev/null 21 beeline -u jdbc:hive2://192.168.152.192:10000 启动Hbase : start-hbase

    2024年02月02日
    浏览(32)
  • 数仓用户行为数据分析

    分层优点:复杂的东西可以简单化、解耦(屏蔽层作用)、提高复用、方便管理 SA 贴源  数据组织结构与源系统保持一致 shm 历史层  针对不同特征的数据做不同算法,目的都是为了得到一份完整的数据 PDM 明细层 做最细粒度的数据明细,最高扩展性和灵活性,企业级的数据

    2024年02月08日
    浏览(27)
  • 大数据实战 --- 世界新冠疫情数据分析

    目录 开发环境  数据描述 功能需求 数据准备 统计计算 Hbase Hive 分析数据 Hadoop+Hive+Spark+HBase 启动Hadoop :start-all.sh 启动zookeeper :zkServer.sh start 启动Hive : nohup hiveserver2 1/dev/null 21 beeline -u jdbc:hive2://192.168.152.192:10000 启动Hbase : start-hbase.sh hbase shell 启动Spark :spark-shell countryda

    2024年02月02日
    浏览(39)
  • 社交媒体数据分析:解读Facebook用户行为

    在当今数字化时代,社交媒体已经成为人们生活不可或缺的一部分,而Facebook作为这个领域的巨头,承载了数十亿用户的社交活动。这庞大的用户群体产生了海量的数据,通过深度数据分析,我们能够深入解读用户行为,从而更好地满足用户需求、提升用户体验,同时为平台

    2024年01月21日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包