有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主
项目简介
本研究利用开源数据平台,收集了约100万条与国内手机销量相关的数据,完成数据清洗后,将处理好的数据上传至Hadoop集群进行分析。
具体而言,研究聚焦2023年11月京东平台的国内手机销量数据,数据包含订单时间、订单类型、销售价格等信息,且已脱敏。为提升后续分析效率,研究先对原始数据进行清理,删除无关字段、去重并统一字段格式。
鉴于数据量庞大且指标维度众多,研究依托Hadoop生态系统开展数据处理,通过Flume将原始数据批量传输到Hive数据仓库,以减少传统导入过程可能出现的不稳定和数据缺失问题,同时借助Flume的目录监听机制,实现对数据源的高效持续导入。
在Hive层面,研究采用分桶技术优化数据存储和查询效率,并利用Hive SQL开展多维度分析,将分析结果通过Sqoop导出到MySQL,构建数据仓库的汇总层。
在可视化环节,研究使用Pyecharts进行图表绘制,并借助Flask框架将可视化结果集成到系统中,方便后续的展示与管理。
针对物流配送时长的预测,研究结合数据特征构建相关指标,进行特征工程处理,并基于LightGBM算法建立预测模型,通过网格搜索调优模型参数,最终模型取得了较好的表现,拟合优度达0.81,平均预测误差仅为0.5天,同时还对影响配送时长的重要因素进行了可视化呈现,展示了各特征的影响程度。
数据介绍
以下是按表格形式整理的原始数据字段解释:
字段名 | 类型 | 描述 |
---|---|---|
订单时间 | object | 订单创建时间 |
支付时间 | object | 订单支付时间 |
出库时间 | object | 商品出库时间 |
完成时间 | object | 订单完成时间 |
手机型号 | object | 购买手机的型号 |
商品名称 | object | 购买的商品名称 |
订单状态 | object | 订单当前状态 |
订单状态_映射 | object | 订单状态的映射值 |
订单类型 | object | 订单的类型 |
订单种类 | object | 订单的种类 |
售后换新订单标志 | object | 是否为售后换新订单 |
售后换新订单标志_映射 | object | 售后换新订单标志的映射值 |
售后申请时间 | object | 申请售后的时间 |
售后完成时间 | object | 售后流程完成的时间 |
处理结果 | object | 售后的处理结果 |
处理结果_映射 | object | 处理结果的映射值 |
销量 | int64 | 订单的商品数量 |
京东价 | float64 | 商品在京东的原价 |
优惠前单价 | float64 | 商品优惠前的价格 |
优惠后单价 | float64 | 商品优惠后的价格 |
是否plus会员 | object | 是否为京东Plus会员 |
是否plus会员_映射 | object | Plus会员状态的映射值 |
是否学生 | object | 是否为学生用户 |
是否学生_映射 | object | 学生状态的映射值 |
收货省份 | object | 收货地址的省份 |
收货城市 | object | 收货地址的城市 |
收货区县 | object | 收货地址的区县 |
数据预处理
Hadoop大数据分析
在本研究中,为高效管理与分析京东平台的大规模手机销售数据,基于Hive搭建了数据仓库系统。核心表jingdong_data整合订单全生命周期及用户属性信息,采用num_id分桶、ORC格式存储,并支持事务操作,提升查询与存储效率。针对多维分析需求,构建了多张轻量级明细表,如每日订单量、完成量及退单量统计表,以及机型销量分析表,方便时间序列分析与横向对比,为后续用户画像、区域销售及趋势研究提供了坚实的数据支撑。
在本研究的系统中,agent3 被定义为 Flume 的代理实例,负责从指定目录 /home/hadoop/jingdong/data 监听并采集数据,采用 spooldir 类型的 source 实现对结构化文件的高效、稳定导入。为增强容错,channel 选用 file 类型,通过磁盘缓存保障数据在网络抖动或 Hive 波动时不丢失,并配置了 checkpointDir 和 dataDirs 以优化 I/O 性能。sink 则连接 Hive 服务,指定 metastore 地址、数据库及目标表 jingdong_data,通过 DELIMITED 序列化及字段映射确保数据与表结构严格对应,并设置 batchSize 为 90,平衡写入效率与系统负载。
在 Flume 启动前,需先开启 Hive metastore 服务以保证通信正常。实际测试显示,Flume 能高效识别并加载新文件,即使 Hive 短暂宕机,数据也会在 channel 中暂存,待恢复后继续传输,显示出良好的稳定性。研究过程中,通过调整 batchSize 等参数,优化了加载效率和系统稳定性。整体流程自动化程度高,适合用于结构化且更新频繁的电商数据场景,能有效支撑后续的大数据分析和实时数据处理需求。
数据可视化展示
建模预测
在本研究中,针对京东平台订单配送时长预测,构建了基于 LightGBM 的回归模型,并进行了系统的特征工程设计。初期模型仅利用静态特征如用户身份、收货地、订单属性及优惠幅度,虽能反映部分物流效率差异,但预测效果一般,平均绝对误差(MAE)达2.73天,无法有效捕捉节假日、高峰期等动态影响。为提升模型表现,研究进一步引入时间特征,通过拆解出库时间,提取出“出库_星期几”及“出库_日期”,增强模型对订单时序波动的感知。优化后模型保留了原有特征处理方式,并增加订单类型、机型、收货区县等变量,通过OrdinalEncoder进行编码。在调参过程中,模型采用更大叶子数及更深树结构以提升对复杂关系的拟合能力,同时控制过拟合。结果显示,更新后的模型R²提升至0.8109,MAE降低至0.3846天,显著优于初始版本。特征重要性分析表明,“优惠幅度”最具影响力,暗示促销活动易引发物流压力;时间特征位列第二、三位,突出节奏变化对配送效率的关键作用;空间维度如收货省份、城市同样重要,反映区域物流差异。整体研究验证了时间特征在物流预测中的核心价值,并为未来进一步引入节假日标签、仓储负载等动态因素奠定了基础。
系统展示
总结
本项目聚焦于国内手机销售数据,围绕真实电商环境构建了完整的数据采集、清洗、分析及可视化流程。数据涵盖订单、用户、商品、时间和地域等多维信息,具有较高的实际应用和研究价值。在数据处理环节,通过统一字段格式、清除冗余数据和标准化时间信息,显著提升了数据质量,也为后续在 Hadoop 平台上的高效处理奠定了基础。系统架构方面,集成了 HDFS、Hive、Flume、Sqoop 和 MySQL 等组件,构建出稳定的分布式数据处理与存储环境。
Hive 建表设计采用分桶策略及 ORC 列式存储,大幅提高查询性能;Flume 与 Sqoop 的协同应用则顺利实现了 Hadoop 与 MySQL 间的数据交互,为前端可视化提供了坚实的数据支撑。在数据分析层,项目利用 HiveQL 构建多维指标体系,深入探究了订单量、退货率、价格波动及区域销售等关键特征,并通过可视化手段揭示了促销活动带来的订单波动、不同区域间的销售差异及用户行为趋势。在预测建模方面,引入 LightGBM 对订单配送时长进行建模,并结合时间相关特征显著优化了预测效果,证明了时间因素在物流预测中的重要作用。
此外,系统前后端高度集成,前端界面设计直观,功能完善,支持多角色管理及个性化操作,而后端则保障了数据交互、权限控制及用户行为追踪,整体系统运行稳定,能满足教学及企业分析需求。
每文一语
迭代