【大数据基础】基于零售交易数据的Spark数据处理与分析

环境搭建

sudo apt-get install python3-pip
pip3 install bottle

在这里插入图片描述

数据预处理

首先,将数据集E_Commerce_Data.csv上传至hdfs上,命令如下:

./bin/hdfs dfs -put /home/hadoop/E_Commerce_Data.csv /user/hadoop

在这里插入图片描述
接着,使用如下命令进入pyspark的交互式编程环境,对数据进行初步探索和清洗:

cd /usr/local/spark #进入Spark安装目录
./bin/pyspark

(1)读取在HDFS上的文件,以csv的格式读取,得到DataFrame对象。

>>> df=spark.read.format('com.databricks.spark.csv').options(header='true', inferschema='true').load('E_Commerce_Data.csv')

(2)查看数据集的大小,输出541909,不包含标题行

df.count()

在这里插入图片描述
(3)打印数据集的schema,查看字段及其类型信息。输出内容就是上文中的属性表。

df.printSchema()

在这里插入图片描述
(4)创建临时视图data。

df.createOrReplaceTempView("data")

(5)由于顾客编号CustomID和商品描述Description均存在部分缺失,所以进行数据清洗,过滤掉有缺失值的记录。特别地,由于CustomID为integer类型,所以该字段若为空,则在读取时被解析为0,故用df[“CustomerID”]!=0 条件过滤。

clean=df.filter(df["CustomerID"]!=0).filter(df["Description"]!="")

(6)查看清洗后的数据集的大小,输出406829。

clean.count()

在这里插入图片描述
(7)数据清洗结束。根据作业要求,预处理后需要将数据写入HDFS。将清洗后的文件以csv的格式,写入E_Commerce_Data_Clean.csv中(实际上这是目录名,真正的文件在该目录下,文件名类似于part-00000),需要确保HDFS中不存在这个目录,否则写入时会报“already exists”错误。

>>> clean.write.format("com.databricks.spark.csv").options(header='true',inferschema='true').save('E_Commerce_Data_Clean.csv')

在这里插入图片描述

数据分析

首先,导入需要用到的python模块。

# -*- coding: utf-8 -*-
from pyspark import SparkContext
from pyspark.sql import SparkSession
from pyspark.sql.types import StringType, DoubleType, IntegerType, StructField, StructType
import json
import os

接着,获取spark sql的上下文。

sc = SparkContext('local', 'spark_project')
sc.setLogLevel('WARN')
spark = SparkSession.builder.getOrCreate()

最后,从HDFS中以csv的格式读取清洗后的数据目录E_Commerce_Data_Clean.csv,程序会取出该目录下的所有数据文件,得到DataFrame对象,并创建临时视图data用于后续分析。

df = spark.read.format('com.databricks.spark.csv').options(header='true', inferschema='true').load('E_Commerce_Data_Clean.csv')
df.createOrReplaceTempView("data")

为方便统计结果的可视化,将结果导出为json文件供web页面渲染。使用save方法导出数据:

def save(path, data):
    with open(path, 'w') as f:
        f.write(data)

最后利用如下指令运行分析程序:

cd /usr/local/spark
./bin/spark-submit project.py

可视化方法

from bottle import route, run, static_file
import json

@route('/static/<filename>')
def server_static(filename):
    return static_file(filename, root="./static")

@route("/<name:re:.*\.html>")
def server_page(name):
    return static_file(name, root=".")

@route("/")
def index():
    return static_file("index.html", root=".")


run(host="0.0.0.0", port=9999)

代码完成后,在代码所在的根目录下执行以下指令启动web服务器:

python3 web.py

在这里插入图片描述
为方便运行程序,编写run.sh脚本,内容如下。首先向spark提交project.py程序对数据进行统计分析,生成的json文件会存入当前路径的static目录下;接着运行web.py程序,即启动web服务器对分析程序生成的json文件进行解析渲染,方便用户通过浏览器查看统计结果的可视化界面。

#!/bin/bash
cd /usr/local/spark
./bin/spark-submit project.py
python3 web.py

在这里插入图片描述
在这里插入图片描述

结果可视化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### 回答1: Spark是一个分布式计算框架,适用于处理大规模数据的场景。它可以基于零售交易数据进行数据的处理和分析,可以进行数据清洗、转换、聚合等操作,支持SQL语言查询和复杂的机器学习算法计算。Spark可以对数据进行分布式处理,从而实现高效、快速的数据处理分析。同时,Spark还支持大量的扩展插件,可以轻松的进行数据的可视化和呈现。 ### 回答2: 零售交易数据是当今商业分析领域中的一个重要数据源。利用这些数据可以帮助企业对销售情况、商品货架布局、市场营销策略等方面进行分析和改进。而Spark作为当今主流的大数据处理和分析框架,也是处理零售交易数据的最佳选择之一。 首先,需要将零售交易数据从各种数据源进行整合。这些数据源包括POS终端、在线销售平台、CRM系统等等。Spark可以通过数据导入、批量处理等方式,将这些数据源的数据整合到同一个地方,建立一个完整的零售交易数据集。 接下来,利用Spark可以进行多维度分析,例如: 一、商品售出情况:对商品的销售数量、价值、售价、月份、季度、区域、门店等进行统计和分析。 二、会员消费数据:对会员消费数据进行分析,了解会员的消费习惯、消费偏好、消费频次等等。 三、促销活动效果:对促销活动的销售效果进行跟踪和分析,看看促销对销售有没有带来积极的影响。 四、门店销售数据:对门店的销售数据进行分析,找出最高、最低的销售门店,了解门店地理位置对销售的影响等等。 最后,可以使用数据可视化工具将Spark分析结果呈现出来,以便更直观地展现数据分析结果。例如,通过柱状图、折线图、饼图等等,直观地了解每个商品的销售情况,或是月份销售额的走向等等。 通过上述数据处理分析方式,企业可以更好地了解其销售情况,优化业务决策,提高经营效益。 ### 回答3: 基于零售交易数据Spark数据处理分析 零售业是一种大规模数据的产业,每天都会产生大量的交易数据。这些数据可以被收集并分析,以帮助零售商更好地了解客户,改进业务和增加销售额。Spark是一种在大数据领域广泛使用的分布式计算引擎,可以用于处理和分析这种大量的零售交易数据Spark提供了许多工具和库,可以让数据科学家和数据工程师在处理和分析零售交易数据时更加高效和方便。其中,主要包括以下几个方面: 1. Spark Streaming: 零售商可以使用Spark Streaming实时处理实时交易数据Spark Streaming可以将实时数据源转换为流数据,并在流数据上应用Spark操作,因此零售商可以实时了解他们的交易数据。 2. Spark SQL: Spark SQL是一种使数据科学家和数据工程师能够更轻松地查询和分析结构化数据的方式。使用Spark SQL,零售商可以轻松地通过类似SQL的语法查询和分析他们的交易数据。 3. MLlib: MLlib是Spark中的机器学习库,它提供了许多机器学习算法,包括分类、回归、聚类等。零售商可以使用这些算法来识别交易中的模式,并进一步更好地预测客户的需求和行为。 4. GraphX: GraphX是Spark中的图形处理库,零售商可以使用它来建立交易网络,分析客户之间的关系,以及找到最受欢迎的产品。 通过使用这些工具和库,零售商可以获得各种见解,例如: 1. 最受欢迎的产品类别: 使用Spark SQL和机器学习算法,零售商可以识别出最受欢迎的产品类别,并相应地增加这些产品的库存。 2. 客户行为模式: 使用Spark Streaming实时处理实时交易数据零售商可以发现客户的行为模式,例如购买时间和购买频率。这样,零售商可以优化销售策略以更好地满足客户的需求。 3. 交易网络: 使用GraphX来建立交易网络,并分析客户之间的关系。这样,零售商可以更好地推销产品,同时加强客户关系,提高忠诚度。 因此,Spark是一种非常有用的工具来处理和分析零售交易数据。通过使用Spark Streaming、Spark SQL、MLlib和GraphX等工具和库,零售商可以更好地了解客户,优化业务流程,并增加销售额。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值