基于Spark(Scala)淘宝用户行为数据分析

本文详细介绍了如何使用Spark和Scala从HDFS加载数据,将RDD转换为DataFrame,进而筛选购买数量前十的商品类目,统计销售排行前10的商品类目及其中商品的销售量。通过创建实体类和使用窗口函数,最终将结果转换为JSON并保存到本地。
摘要由CSDN通过智能技术生成

目录

数据集说明

代码解析

从分布式文件系统HDFS中加载数据、将RDD转换为DataFrame。

筛选出用户购买数量前十的商品类目

获取排行前10的商品类目所包含的每个商品销售量

统计销售排行前10的商品类目所包含的商品中销售量排行前十的商品

创建一个统计结果的实体类CateAndItemClass

把统计结果的每一行分别存入数组内

编写一个把数组转换为json数据,并保存到本地的方法


数据集说明

名称 说明
用户ID 整数类型,序列化后的用户ID
商品ID 整数类型,序列化后的商品ID
商品类目ID 整数类型,序列化后的商品所属类目ID
行为类型 字符串,枚举类型,包括('pv', 'buy', 'cart', 'fav')
行为发生的时间 行为发生的时间戳
行为类型 说明
pv 商品详情页pv,等价于点击
buy 商品购买
cart 将商品加入购物车
fav 收藏商品

代码解析

从分布式文件系统HDFS中加载数据、将RDD转换为DataFrame。

从RDD转换得到DataFrame有两种方式,一是利用反射机制推断RDD模式,二是使用编程方式定义RDD模式。这里使用第一种方式将RDD转换为DataFrame,需要注意的是应提前定义case class,这样才能被spark隐式转换为DataFrame。

case class Info(userId: Integer, itemId: Integer, cateId: Integer ,action: String, time:String)
    al conf = new SparkConf().setAppName("cate").setMaster("local")
    val sc = new 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值