机器学习 课件 第10章 项目实战2:基于Hive 数据仓库的商品推荐.pptx
第10章项目实战2:基于Hive数据仓库的商品推荐
课程学习内容10.1项目背景10.2数据获取10.3数据预处理10.4机器学习建模与分析10.5项目总结
10.1项目背景 本项目研究利用Hive进行顾客消费记录的转存,并做线下商品推荐和线上商品推荐;采用Spark进行建模与分析,获得商品推荐表,向顾客推荐商品,达到促销的目的。 第1步是数据获取,用Spark连接MySQL获取商品消费记录,存入Hive数据仓库的ODS层。第2步是用SparkSQL进行数据预处理,提取必要的消费信息,存入数据仓库的DW层。第3步建模与分析阶段,用SparkML工具进行数据挖掘,得出商品推荐规则,保存到MySQL的商品推荐表中。第4步是商品推荐
10.2数据获取10.2.1用navicat连接数据库查看数据 商业数据存储在MySQL的test数据库的相关表中。其中线下的消费信息保存在表shopping中,用navicat连接数据库查看数据。线上的消费信息保存在表product_browse中
10.2数据获取
10.2数据获取10.2.2用Spark获取数据到Hive的ods数据仓库1.Hive数据仓库的结构 本项目仅研究商品推荐问题,故不涉及DM层,仅仅涉及ODS和DW层。先利用SecureCRT联机,输入下面的命令,启动Hadoop平台:
10.2数据获取再输入hive命令,进入hive的客户端,查看数据仓库分层架构和目前现有的数据:
10.2数据获取2.编写Spark程序实现线下(超市购物)消费数据从MySQL保存到hive Spark程序在IDEA工具中开发,在IDEA中建立Maven工程项目test,建立scala单例类aaa04_01,实现把MySQL中的test.shopping线下消费数据保存到hive的ods.shopping表中。代码如下:
10.2数据获取
10.2数据获取每写一部分,就可以打包发送到服务器中,通过spark-submit命令运行:
10.2数据获取3.编写Spark程序实现线上(电商平台)消费数据从MySQL保存到hive 建立scala单例类aaa04_02,实现把MySQL中的test.product_browse线上消费数据保存到hive的ods.product_browse表中。代码如下:
10.2数据获取
10.2数据获取
10.3数据预处理 10.3.1对线下购物数据进行预处理,并装入hive数据仓库的DW层 建立scala单例类aaa04_03,实现把ods中的ods.shopping线下消费数据进行预处理,并保存到DW的dw.dim_shopping表中。代码如下:
10.3数据预处理
10.3数据预处理
10.3数据预处理
10.3数据预处理10.3.2对线上购物数据进行预处理,并装入hive数据仓库的DW层 数据从ods.product_browse装入dw.dim_product_browse,同样需要去除多余的列,使格式上保持一致。另外,gen_order表示用户是否购买该商品,gen_order==1表示在网上下单购买,而gen_order==0表示仅仅浏览,并没有购买,所以在预处理时要把gen_order==0的记录过滤掉。
10.3数据预处理
10.3数据预处理
10.4机器学习建模与分析10.4.1对线下购物数据进行分析,并将商品推荐结果写入MySQL 从dw.dim_product_browse中读取数据,用FPGrowth分析。在初步结果的基础上,对数据格式进行调整,并将最终结果写入MySQL的test.associationRules表。代码如下:
10.4机器学习建模与分析
10.4机器学习建模与分析
10.4机器学习建模与分析
10.4机器学习建模与分析
10.4机器学习建模与分析10.4.2对线上购物数据进行分析,并将商品推荐结果写入MySQL 在SparkML中集成了ALS算法,首先将dw.dim_product_browse的数据读取到Spark,进行格式调整,如有多次购买的情况则整合其平均值。然后应用ALS算法进行商品推荐,向用户推荐top3商品,向商品推荐top3用户,并将结果记录到MySQL中。代码如下:
10.4机器学习建模与分析
10.4机器学习建模与分析
10.4机器学习建模与分析
10.4机器学习建模与分析
10.4机器学习建模与分析
10.4机器学习建模与分析
10.5项目总结1.线上线下数据