## 项目介绍
该大数据分析平台对电商网站的各种用户行为(访问行为、购物行为、广告点
击行为等)进行分析,根据平台统计出来的数据,辅助公司中的 PM(产品经理)、
数据分析师以及管理人员分析现有产品的情况,并根据用户行为分析结果持续改进 产品的设计,以及调整公司的战略和业务。最终达到用大数据技术来帮助提升公司
的业绩、营业额以及市场占有率的目标
## 项目技术
本项目使用了 Spark 技术生态栈中最常用的三个技术框架,Spark Core、Spark SQL 和 Spark Streaming,以及hive
离线模拟数据生成
即通过定义动作表,用户信息表,即产品表的相关类及属性,在通过随机数等方式生成模拟数据,并初始化到hive中
### 需求一 用户访问session统计
1. 以开始时间与结束时间为条件获取原始的动作表(user_visit_action)数据 actionRDD
2. 将actionRDD转化为k-v结构 sessionId2ActionRDD
3. 对sessionId2ActionRDD groupBykey 操作 sessionId2GroupRDD (斧子型数据)
4. 从sessionId2GroupRDD里的每一天数据提取聚合信息
5. 联立user_info表
6. 得到最后的每个sessionId对应的完整聚合信息sessionId2FullInfoRDD
7. 根据过滤条件对聚合信息进行过滤
8. 根据符合过滤条件的session更新累加器信息
9. 从累加器中读取各个访问步长的session的个数,计算比率
### 需求二 随机抽取session
关键点 抽取的数量,抽取的随机性
1. 如何保证抽取的随机性?
通过计算公式可知每小时的抽取数量N,那么可以生成N个随机数,而n个随机数的列表就是要抽取的session的索引列表。
所以可以按照hour聚合后的数据,从0开始进行编号,如果session对应的编号存在于索引列表中,那么就抽取此session,否则不抽取
### 需求三 top10热门品类
1. 第一步:是要获取所有发生过点击,下单,付款的品类
2. 执行去重 cid2CidRDD = cid2CidRDD.distinct()
3. 第二步:统计品类的点击次数
4. 第三步 统计品类的下单次数
5. 第四步 统计品类的付款次数
6. 第五步,整合点击次数,付款次数,下单次数
7. 实现自定义二次排序key
8. 根据case class来构建数据 导入到数据库
### 需求四 top10热门品类的top10活跃session
1. 根据top10CategoryArray 获取所有top10热门品类的cid数组
2. 通过sessionId2FilterActionRDD 的filter算子获取所有符合过滤条件的并且点击过top10热门品类的action数据
3. 对上述结果执行groupbykey操作-- val sessionId2GroupRDD = sessionId2ActionRDD.groupByKey()
4. 对上述斧子型数据执行flatmap操作,并且遍历他的value值,通过map来维护他的categoryid的个数,
最后通过yield进行收集-- yield (cid,sessionId+ "=" + count),转换成以cid为key,sessionCount为value的RDD
5. 再对上述结果执行groupbykey操作,这样就可以获取cid的所有session的点击次数
cid2GroupRDD: RDD[(Long, Iterable[String])] = cid2SessionCountRDD.groupByKey()
6. 在对上述结果执行flatmap操作,并且遍历iterable类型的数据并通过sortWith进行排序且take前10
case (cid, iterableSessionCount) =>
val sortList: List[String] = iterableSessionCount.toList.sortWith((item1, item2) => {
item1.split("=")(1).toLong > item2.split("=")(1).toLong
}).take(10)
7. 组装 top10Session数据 并进行入库操作
### 需求五 计算给定的页面访问流的页面单跳转化率
1. 从user_visit_action表里读取指定时间范围内的用户行为数据
2. RDD(sessionId,action)
3. 获取目标页面切片
4. 对sessionId2Action数据进行groupByKEY 操作
5. 对每个session对应的iterable类型的数据按照时间(action_time)进行排序
6. 取出排序完成的每个action的page_id信息
7. 把page_id转化为页面切片形式
8. 根据目标页面切片,将不存在于目标页面切片的所有切片过滤掉
9. RDD(pageSplit,1L)
10. 执行countBykey操作,拿到每个页面切片的总个数
11. 获取起始页面page1
12. 得到起始页面个数
13. 根据所有的切片个数信息,计算实际的页面切片转化率大小
14. 封装到case class,写入到mysql数据库
### 需求六 各区域top3商品统计
1. 从user_visit_action 表里,获取city_id和pid信息 RDD(cityId,pid)
2. 从array里获取area,city_id,city_name数据
3. 聚合 (area,city_id,city_name,pid)
4. 创建基本信息表(tmp_area_basic_info)
5. 统计每个区域每个广告的点击次数 (tmp_area_click_count)
6. 获得拥有完整商品信息的点击次数表 (tmp_area_count_product_info)
7. 统计area top3的热门品类
8. 写入mysql
### 需求七 广告点击黑名单实时统计
(和上述实现类似)
### 需求八 各省各城市一天中的广告点击量
(和上述实现类似)
### 需求九 每天每个省份top3热门广告
1. 将各省各城市广告点击量实时统计的DStream 转换成 key-value格式 --》 (newKey,count)
2. 执行reduceBykey的操作
3. 再将将key2ProvinceCityDStream转成touple
4. 在将touple类型的数据转成一张临时表
5. 最后执行 sparkSession.sql(sql).rdd ---》top3DSteam 【RDD[row]】
6. 最后再遍历上面的每一个rdd【row】类型 执行入库操作
### 需求十 最近一个小时广告点击量统计
(通过SprakStreaming 的窗口操作 reduceBykeyAndWindow 实现统计一个小时内每个广告每分钟的点击量)
1. 将原始的adRealTimeFilterDStream 转换成key -value格式
2. 执行reduceByKeyAndwindow 操作
3. 写入mysql数据库
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能正常的情况下才上传的,请放心下载使用。 2、适用人群:主要针对计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、数学、电子信息等)的同学或企业员工下载使用,具有较高的学习借鉴价值。 3、不仅适合小白学习实战练习,也可作为大作业、课程设计、毕设项目、初期项目立项演示等,欢迎下载,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
企业级电商网站的大数据统计分析平台完整源码+说明(以 Spark 框架为核心,对电商网站的日志进行离线和实时分析).zip (436个子文件)
_SUCCESS 0B
_SUCCESS 0B
_SUCCESS 0B
.part-00000-e8b68638-7258-4241-b8e2-9ea33d3ce6ed.snappy.parquet.crc 664B
.part-00002-e8b68638-7258-4241-b8e2-9ea33d3ce6ed.snappy.parquet.crc 664B
.part-00001-e8b68638-7258-4241-b8e2-9ea33d3ce6ed.snappy.parquet.crc 660B
.part-00003-e8b68638-7258-4241-b8e2-9ea33d3ce6ed.snappy.parquet.crc 660B
.part-00005-e8b68638-7258-4241-b8e2-9ea33d3ce6ed.snappy.parquet.crc 660B
.part-00006-e8b68638-7258-4241-b8e2-9ea33d3ce6ed.snappy.parquet.crc 660B
.part-00007-e8b68638-7258-4241-b8e2-9ea33d3ce6ed.snappy.parquet.crc 656B
.part-00004-e8b68638-7258-4241-b8e2-9ea33d3ce6ed.snappy.parquet.crc 656B
.part-00002-05d63d89-f708-454a-b27d-2d2b52e2fd39.snappy.parquet.crc 24B
.part-00005-05d63d89-f708-454a-b27d-2d2b52e2fd39.snappy.parquet.crc 24B
.part-00003-05d63d89-f708-454a-b27d-2d2b52e2fd39.snappy.parquet.crc 24B
.part-00004-05d63d89-f708-454a-b27d-2d2b52e2fd39.snappy.parquet.crc 24B
.part-00000-05d63d89-f708-454a-b27d-2d2b52e2fd39.snappy.parquet.crc 24B
.part-00001-05d63d89-f708-454a-b27d-2d2b52e2fd39.snappy.parquet.crc 24B
.part-00007-05d63d89-f708-454a-b27d-2d2b52e2fd39.snappy.parquet.crc 24B
.part-00006-05d63d89-f708-454a-b27d-2d2b52e2fd39.snappy.parquet.crc 24B
.part-00000-d6f11586-ac0b-4324-85ca-2b1d088b72f9.snappy.parquet.crc 20B
.part-00005-d6f11586-ac0b-4324-85ca-2b1d088b72f9.snappy.parquet.crc 20B
.part-00007-d6f11586-ac0b-4324-85ca-2b1d088b72f9.snappy.parquet.crc 20B
.part-00003-d6f11586-ac0b-4324-85ca-2b1d088b72f9.snappy.parquet.crc 20B
.part-00001-d6f11586-ac0b-4324-85ca-2b1d088b72f9.snappy.parquet.crc 20B
.part-00006-d6f11586-ac0b-4324-85ca-2b1d088b72f9.snappy.parquet.crc 20B
.part-00004-d6f11586-ac0b-4324-85ca-2b1d088b72f9.snappy.parquet.crc 20B
.part-00002-d6f11586-ac0b-4324-85ca-2b1d088b72f9.snappy.parquet.crc 20B
._SUCCESS.crc 8B
._SUCCESS.crc 8B
._SUCCESS.crc 8B
logmirror.ctrl 48B
log.ctrl 48B
log1.dat 1024KB
c230.dat 340KB
c180.dat 72KB
c90.dat 68KB
ca1.dat 68KB
c20.dat 68KB
c8c1.dat 64KB
c6d0.dat 64KB
c570.dat 64KB
c490.dat 64KB
c6b0.dat 64KB
c8a0.dat 64KB
c670.dat 64KB
c510.dat 64KB
c530.dat 64KB
c5b0.dat 64KB
c9c0.dat 64KB
c6f0.dat 64KB
c610.dat 64KB
c9b1.dat 64KB
c4b0.dat 64KB
c9e0.dat 64KB
c41.dat 28KB
c31.dat 24KB
c51.dat 24KB
c150.dat 20KB
c161.dat 20KB
c251.dat 20KB
c191.dat 16KB
c171.dat 16KB
c1a1.dat 16KB
cf0.dat 16KB
c1b1.dat 16KB
cb1.dat 16KB
c111.dat 16KB
c60.dat 12KB
c300.dat 8KB
c7e1.dat 8KB
c521.dat 8KB
c3d1.dat 8KB
c2a1.dat 8KB
c211.dat 8KB
c331.dat 8KB
c840.dat 8KB
c101.dat 8KB
ca11.dat 8KB
c711.dat 8KB
c871.dat 8KB
c340.dat 8KB
c200.dat 8KB
c5e1.dat 8KB
c6e1.dat 8KB
c321.dat 8KB
c380.dat 8KB
c590.dat 8KB
c470.dat 8KB
c3f1.dat 8KB
c741.dat 8KB
c391.dat 8KB
c361.dat 8KB
ca21.dat 8KB
c430.dat 8KB
c5d0.dat 8KB
c411.dat 8KB
c3b1.dat 8KB
c931.dat 8KB
c690.dat 8KB
c781.dat 8KB
共 436 条
- 1
- 2
- 3
- 4
- 5
资源评论
龙年行大运
- 粉丝: 1002
- 资源: 3854
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功