基于spark的淘宝用户行为数据分析及其可视化研究

数据准备

1、数据来源淘宝用户购物行为数据集

数据的相关介绍:
数据的一条记录包括:用户id,商品id,商品类目id,行为类型(行为类型:pv——点击,buy——购买,cart——加入购物车,fav——收藏),时间戳
数据包含了2017年11月25日至2017年12月3日之间淘宝用户的数据行为
用户数量:987994
商品数量:4162024
用户数量:987994
商品类目数量:9439
所有行为数量:100150807

2.上传数据

  • 上传数据(将数据上传到hdfs)

新建文件夹data

mkdir data

将数据上传到xshell中的data文件夹

在这里插入图片描述

在hdfs上建立文件夹zq/data

hdfs dfs -mkdir /zq
hdfs dfs -mkdir /zq/data

将数据上传到hdfs

hdfs dfs -copyFromLocal /data/UserBehavior.csv /zq/data

数据预处理

进入spark-shell

spark-shell

1.读取数据

读取HDFS上数据

//读取HDFS上数据
val dfraw=spark.read.format("csv").option("header",value=true).option("encoding","utf-8").load("/zq/data/UserBehavior.csv")

在这里插入图片描述

读取本地数据

//读取本地数据
val dfraw=spark.read.format("csv").option("header",value=true).option("encoding","utf-8").load("file:///home/zq/data/UserBehavior.csv")

在这里插入图片描述
2.数据预处理
2.1 给数据集加上表头

给数据集加上表头

//加上表头
import org.apache.spark.sql.catalyst.encoders.ExpressionEncoder
import org.apache.spark.sql.Encoder
import spark.implicits._
case class user(user_id:String,item_id:String,cat_id:String,action:String,time_stamp:String)
val userDF=spark.sparkContext.textFile("file:///home/zq/data/UserBehavior.csv").map(_.split(",")).map(attributes=>user(attributes(0),attributes(1),attributes(2),attributes(3),attributes(4).trim.toString)).toDF()

在这里插入图片描述
2.2 时间转换

将时间戳转换成正常的时间,并且将提取出的日期加到dataframe中

//时间戳转换成时间
import java.text.SimpleDateFormat
import java.util.Date
def tranTimeToString(time_stamp:String) : String={
   
   val fm=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
   val tim=fm.format(new Date(time_stamp.toLong*1000l))
   tim
 }
 val addCol_tranTimeToString=udf(tranTimeToString _)
var dfraw1=userDF.withColumn("time",addCol_tranTimeToString(userDF("time_stamp")))

在这里插入图片描述

提取出日期和小时数,并将其加到dataframe中

//提取出日期
def replacetime(time:String):String={
   
val oldstr=time
val str1=oldstr.substring(0,10)
str1
}
val addCol_replacetime=udf(replacetime _)
var dfraw2=dfraw1.withColumn("date",addCol_replacetime(dfraw1("time")))

//提取出时
def retime(time:String):String={
   
val oldstr=time
val str=oldstr.substring(11,13)
str
}
val addCol_retime=udf(retime _)
var dfraw3=dfraw2.withColumn("hours",addCol_retime(dfraw2("time")))

在这里插入图片描述
2.3 查看缺失值

查看是否含有缺失值

//查看缺失值
val columns=dfraw3.columns
val missing_cnt=columns.map(x=>dfraw3.select(col(x)).where(col(x).isNull).count)

在这里插入图片描述
2.4 去重

去重

//去重
dfraw3.count()
val df=dfraw3.select("user_id","item_id","cat_id","action","time_stamp","time","date","hours").dropDuplicates()
df.count()

在这里插入图片描述
2.5 筛选出符合的数据集

查看数据集中包含的日期

//查看数据集中包含的日期
val df1=df.select("date").distinct().collect()

在这里插入图片描述

筛选出2017-11-25~2017-12-03的数据

//筛选出2017-11-25~2017-12-03的数据
val df1=df.filter((df("date")>"2017-11-24") and (df("date")
  • 3
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
基于Spark淘宝大数据分析可视化是一种基于Spark框架的数据处理和可视化方法,用于从淘宝网站爬取商品价格和销量等数据。 首先,我们可以使用Spark的分布式计算能力,从淘宝网站爬取大量的商品数据。Spark提供了处理大规模数据的能力,可以将爬取的数据进行分布式处理,提高处理效率。 接下来,我们可以使用Spark的数据处理和分析功能对爬取到的数据进行清洗和筛选。通过数据清洗和筛选,我们可以去除无效或错误的数据,并提取出需要的商品价格和销量等信息。 然后,我们可以使用Spark数据分析功能对清洗和筛选后的数据进行统计和计算。通过Spark的分布式计算能力,我们可以高效地进行复杂的数据统计和计算操作,例如计算商品的平均价格、销售额、销量等指标。 最后,我们可以使用Spark可视化功能对分析结果进行可视化展示。通过Spark可视化功能,我们可以将分析结果以图表或者图形的形式展示出来,提供直观的数据可视化效果。例如,我们可以使用图表来展示不同商品类别的销售情况,或者使用热力图来展示商品价格和销量的关系等。 基于Spark淘宝大数据分析可视化淘宝爬取商品价格销量,可以帮助商家或者分析师更好地了解商品的价格销量情况,优化商品的定价和销售策略,提高销售收益和市场竞争力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值