2020 级Spark项目应用测试试卷 -电子商务大数据分析

石家庄铁道大学2023年春季

  2020 Spark项目应用测试试卷

-电子商务大数据分析

课程名称:大数据技术与应用  任课教师王建民     测试时间:180分钟

 

一、测试要求:

1、 数据采集(要求至少爬取三千条记录,要求必须有近一周的数据,时间跨度超过一星期):

要求Python 编写程序爬取京东手机的评论数据,生成Json形式的数据文件。

京东商城部分数据格式如下图所示:

  1. "productCommentSummary": {  
  2. "goodRateShow": 95, //好评率  
  3. "poorRateShow": 3, //差评率  
  4. "poorCountStr": "1900+",  
  5. "averageScore": 5, //平均分  
  6. "generalCountStr": "1600+",  
  7. "oneYear": 0,  
  8. "showCount": 21000,  
  9. "showCountStr": "2.1万+",  
  10. "goodCount": 64000, //好评数  
  11. "generalRate": 0.024,  
  12. "generalCount": 1600, //中评数  
  13. "skuId": 4432058,  
  14. "goodCountStr": "6.4万+",  
  15. "poorRate": 0.028,  
  16. "afterCount": 2400,  
  17. "goodRateStyle": 142,  
  18. "poorCount": 1900, //差评数  
  19. "skuIds": null,  
  20. "poorRateStyle": 4,  
  21. "generalRateStyle": 4,  
  22. "commentCountStr": "6.8万+",  
  23. "commentCount": 68000,  
  24. "productId": 4432058, //商品id  
  25. "afterCountStr": "2400+",  
  26. "goodRate": 0.948,  
  27. "generalRateShow": 2 //中评率  
  28. },  

comments中一条评论的结构:

 

  1. “id": 10432588299,  
  2. “guid": "6c1d83b1-ac45-4189-a041-774eaff87df9",  
  3. “content": "割手,相当的割手,无语了", //评论内容 √  
  4. “creationTime": "2017-05-22 23:37:24", //写评论的时间 √  
  5. “isTop": false,                        //是否置顶  
  6. “referenceTime": "2017-05-20 18:35:11", //收货时间 √  
  7. “firstCategory": 9987,                 //第一分类 √  
  8. “secondCategory": 653,                 //第二分类 √  
  9. “thirdCategory": 655,                  //第三分类 √  
  10. “replyCount": 0,  
  11. “score": 3,                            //打分 √  
  12. “nickname": "j***柜",                  //昵称  √  
  13. “userClient": 2,  
  14. “productColor": "碳黑色",  
  15. “productSize": "32GB",  
  16. “userLevelName": "金牌会员",           //会员级别 √  
  17. “plusAvailable": 0,  
  18. “productSales": [  
  19.    {  
  20.        "dim": 3,  
  21.        "saleName": "选择套装",  
  22.        "saleValue": "官方标配"  
  23.    }  
  24. ,  
  25. “userClientShow": "来自京东iPhone客户端",//评论设备  
  26. “isMobile": true,                       //是否移动端  
  27. “days": 2,                              //评论时间距【收货/下单】时间多长时间  
  28. “afterDays": 0  

 

2、数据预处理:要求使用MapReduce实现源数据的预处理,对大量的Json文件,进行清洗,以得到结构化的文本文件。

(1)去除用户评论表的重复记录;

(2)按照清洗后的数据格式要求提取相应的数据字段。

 

 

清洗后的标准文本格式:

  1. "id": 10432588299,  
  2. "guid": "6c1d83b1-ac45-4189-a041-774eaff87df9",  
  3. "content": "割手,相当的割手,无语了",   //评论内容 √  
  4. "creationTime": "2017-05-22 23:37:24",  //写评论的时间 √  
  5. "isTop": false,                         //是否置顶  
  6. "referenceTime": "2017-05-20 18:35:11", //收货时间 √  
  7. "score": 3,                             //打分 √  
  8. "nickname": "j***柜",                   //昵称  √  
  9. "userLevelName": "金牌会员",            //会员级别 √  
  10. "userClientShow": "来自京东iPhone客户端",//评论设备  
  11. "isMobile": true,                       //是否移动端  
  12. "days": 2,                              //评论时间距【收货/下单】时间多长时间  

 

 

 

3、 数据统计:使用SparkScala APIJava API进行数据统计(15分)

(1)在Hive创建一张表,用于存放清洗后的数据,表名为pinglun,字段名、字符类型、字段解释如下:

  1. productid        string  产品ID  
  2. commentcount     int     评论数  
  3. goodcount        int     好评数  
  4. generalcount     int     中评数  
  5. poorcount        int     差评数  
  6. goodrateshow     float   好评率  
  7. generalrateshow  float   中评率  
  8. poorrateshow     float   差评率  
  9. guid             string  随机生成ID  
  10. content          string  评论内容  
  11. creationtime     string  写评论的时间  
  12. score            int     打分  
  13. nickname         string  昵称  
  14. userlevelname    string  会员级别  
  15. userclientshow   string  评论设备  
  16. ismobile         string  是否移动端  
  17. days             int     评论时间距【收货/下单】时间多长时间  

 

 

 

 

需求1:分析用户使用移动端购买还是PC端购买,及移动端和PC端的用户比例,生成ismobilehive表,存储统计结果;

 

其中1代表移动端购买,共816人,0代表PC端购买,共174人。

需求2:分析用户评论周期(收到货后,一般多久进行评论),生成dayssql表,存储统计结果;

 

 

需求3:分析会员级别(判断购买此商品的用户级别),生成userlevelname_out表,存储统计结果;

 

 

需求4:分析每天评论量,生成creationtime_out表,存储统计结果;

 

 

 

 

4、 将统计结果导出到Mysql数据库:

将上述五个表倒入到相对应的mysql数据表中。

 

5、 数据可视化:利用JavaWeb+Echarts完成数据图表展示过程

(实现前五步,获得60分)

需求1把用户对京东进行评论时使用的是客户端还是移动端的统计数据,用饼图进行数据展示,从而达到让观者能从中熟悉某个项目与整个数据组间所存在的比例关系的目的。

需求2把用户在收到货后,一般多久进行评论,即用户评论周期用柱状图展示,可以达到展现数据并将数据进行比较的目的。

需求3将购买某商品的用户级别进行统计的结果数据用饼状图展示,从而可以展现用户级别的比例构成关系,让观者能从中熟悉某个级别的用户数量与所有购买用户所存在的比例关系。

需求4将某件商品的每天的评论量的统计数据用折线图进行展现,可以展现出这个商品每天的评论量的变化趋势。

posted @ 2023-04-26 13:02  萧贾jzm  阅读(46)  评论(0编辑  收藏  举报
//歌单id