Spark SQL案例【电商购买数据分析】

简介: Spark SQL案例【电商购买数据分析】

数据说明

Spark 数据分析 (Scala)

import org.apache.spark.rdd.RDD
import org.apache.spark.sql.{DataFrame, SparkSession}
import org.apache.spark.{SparkConf, SparkContext}
import java.io.{File, PrintWriter}
object Taobao {
  case class Info(userId: Long,itemId: Long,action: String,time: String)
  def main(args: Array[String]): Unit = {
    // 使用2个CPU核心
    val conf = new SparkConf().setMaster("local[2]").setAppName("tao bao product")
    val spark = SparkSession.builder().config(conf).getOrCreate()
    import spark.implicits._
    val sc = spark.sparkContext
    // 从本地文件系统加载文件生成RDD对象
    val rdd: RDD[Array[String]] = sc.textFile("data/practice2/Processed_UserBehavior.csv").map(_.split(","))
    // RDD 转为 DataFrame对象
    val df: DataFrame = rdd.map(attr => Info(attr(0).trim.toInt, attr(1).trim.toInt, attr(2), attr(3))).toDF()
    // Spark 数据分析
    //1.用户行为信息统计
    val behavior_count: DataFrame = df.groupBy("action").count()
    val result1 = behavior_count.toJSON.collectAsList().toString
//    val writer1 = new PrintWriter(new File("data/practice2/result1.json"))
//    writer1.write(result1)
//    writer1.close()
    //2.销量前十的商品信息统计
    val top_10_item:Array[(String,Int)] = df.filter(df("action") === "buy").select(df("itemId"))
      .rdd.map(v => (v(0).toString,1))
      .reduceByKey(_+_)
      .sortBy(_._2,false)
      .take(10)
    val result2 = sc.parallelize(top_10_item).toDF().toJSON.collectAsList().toString
//    val writer2 = new PrintWriter(new File("data/practice2/result2.json"))
//    writer2.write(result2)
//    writer2.close()
    //3.购物数量前十的用户信息统计
    val top_10_user: Array[(String,Int)] = df.filter(df("action") === "buy").select(df("userId"))
      .rdd.map(v => (v(0).toString, 1))
      .reduceByKey(_ + _)
      .sortBy(_._2, false)
      .take(10)
    val result3 = sc.parallelize(top_10_user).toDF().toJSON.collectAsList().toString
//    val writer3 = new PrintWriter(new File("data/practice2/result3.json"))
//    writer3.write(result3)
//    writer3.close()
    // 4.时间段内平台商品销量统计
    val buy_order_by_date: Array[(String,Int)] = df.filter(df("action") === "buy").select(df("time"))
      .rdd.map(v => (v.toString().replace("[","").replace("]","").split(" ")(0),1)
    ).reduceByKey(_+_).sortBy(_._1).collect()
    //转为dataframe
//    buy_order_by_date.foreach(println)
    /*
    (2017-11-25,21747)
    (2017-11-26,22265)
    (2017-11-27,24583)
    (2017-11-28,23153)
    (2017-11-29,24102)
    (2017-11-30,23994)
    (2017-12-01,23153)
    (2017-12-02,28512)
     */
    val result4 = sc.parallelize(buy_order_by_date).toDF().toJSON.collectAsList().toString
    val writer4 = new PrintWriter(new File("data/practice2/result4.json"))
    writer4.write(result4)
    writer4.close()
    sc.stop()
    spark.stop()
  }
}

数据可视化(pyecharts)

1、 用户行为数据分析

2、销量前 10 的商品数据

3、用户购买量前 10

4、时间段商品销量波动


相关文章
|
29天前
|
数据采集 机器学习/深度学习 数据可视化
数据科学项目实战:完整的Python数据分析流程案例解析
【4月更文挑战第12天】本文以Python为例,展示了数据分析的完整流程:从CSV文件加载数据,执行预处理(处理缺失值和异常值),进行数据探索(可视化和统计分析),选择并训练线性回归模型,评估模型性能,以及结果解释与可视化。每个步骤都包含相关代码示例,强调了数据科学项目中理论与实践的结合。
|
3月前
|
数据可视化 搜索推荐 数据挖掘
数据分析案例-顾客购物数据可视化分析
数据分析案例-顾客购物数据可视化分析
113 0
|
3天前
|
SQL 存储 小程序
数据库数据恢复—Sql Server数据库文件丢失的数据恢复案例
数据库数据恢复环境: 5块硬盘组建一组RAID5阵列,划分LUN供windows系统服务器使用。windows系统服务器内运行了Sql Server数据库,存储空间在操作系统层面划分了三个逻辑分区。 数据库故障: 数据库文件丢失,主要涉及3个数据库,数千张表。数据库文件丢失原因未知,不能确定丢失的数据库文件的存放位置。数据库文件丢失后,服务器仍处于开机状态,所幸未写入大量数据。
数据库数据恢复—Sql Server数据库文件丢失的数据恢复案例
|
4天前
|
JSON 搜索推荐 数据挖掘
电商数据分析的利器:电商关键词搜索API接口(标题丨图片丨价格丨链接)
淘宝关键词搜索接口为电商领域的数据分析提供了丰富的数据源。通过有效利用这一接口,企业和研究人员可以更深入地洞察市场动态,优化营销策略,并提升用户体验。随着电商平台技术的不断进步,未来的API将更加智能和个性化,为电商行业带来更多的可能性。
|
5天前
|
SQL 分布式计算 数据可视化
数据分享|Python、Spark SQL、MapReduce决策树、回归对车祸发生率影响因素可视化分析
数据分享|Python、Spark SQL、MapReduce决策树、回归对车祸发生率影响因素可视化分析
|
5天前
|
SQL 数据采集 存储
Hive实战 —— 电商数据分析(全流程详解 真实数据)
关于基于小型数据的Hive数仓构建实战,目的是通过分析某零售企业的门店数据来进行业务洞察。内容涵盖了数据清洗、数据分析和Hive表的创建。项目需求包括客户画像、消费统计、资源利用率、特征人群定位和数据可视化。数据源包括Customer、Transaction、Store和Review四张表,涉及多个维度的聚合和分析,如按性别、国家统计客户、按时间段计算总收入等。项目执行需先下载数据和配置Zeppelin环境,然后通过Hive进行数据清洗、建表和分析。在建表过程中,涉及ODS、DWD、DWT、DWS和DM五层,每层都有其特定的任务和粒度。最后,通过Hive SQL进行各种业务指标的计算和分析。
23 1
Hive实战 —— 电商数据分析(全流程详解 真实数据)
|
14天前
|
数据可视化 数据挖掘
R语言生存分析数据分析可视化案例(上)
R语言生存分析数据分析可视化案例
|
19天前
|
分布式计算 Hadoop Scala
Spark【环境搭建 01】spark-3.0.0-without 单机版(安装+配置+测试案例)
【4月更文挑战第13天】Spark【环境搭建 01】spark-3.0.0-without 单机版(安装+配置+测试案例)
22 0
|
22天前
|
SQL 自然语言处理 数据库
NL2SQL实践系列(2):2024最新模型实战效果(Chat2DB-GLM、书生·浦语2、InternLM2-SQL等)以及工业级案例教学
NL2SQL实践系列(2):2024最新模型实战效果(Chat2DB-GLM、书生·浦语2、InternLM2-SQL等)以及工业级案例教学
NL2SQL实践系列(2):2024最新模型实战效果(Chat2DB-GLM、书生·浦语2、InternLM2-SQL等)以及工业级案例教学
|
24天前
|
数据采集 数据可视化 数据挖掘
Seaborn在数据分析中的应用:案例分析与实践
【4月更文挑战第17天】本文介绍了Seaborn在数据分析中的应用,它是一个基于Python的可视化库,简化了复杂数据的图表创建。通过一个销售数据分析的案例,展示了数据加载、描述性统计、相关性分析、多变量分析及高级可视化步骤。实践技巧包括数据清洗、图表选择、颜色使用、注释标签和交互性。Seaborn助力高效数据探索和理解,提升分析效率。注意,实际使用需根据数据集和目标调整,并参考最新文档。