2021年全国职业院校技能⼤赛⼤数据应⽤技术国赛题
2021年全国职业院校技能⼤赛
⾼职组
“⼤数据技术与应⽤”
赛项赛卷(GZ-xxxxxxx-X卷)
任
务
书
参赛队编号:
背景描述
据央视财经报道,2020年我国O2O市场规模突破万亿元,O2O市场存在着巨⼤的潜⼒。特别是餐饮和外
卖⾏业,占据市场较⼤份额,并且业务增长迅速。截⾄2020年底,全国外卖总体订单量已超过171.2亿单,同⽐增长7.5%,全国外卖市场交易规模达到8352亿元,同⽐增长14.8%。我国外卖⽤户规模已接近5亿⼈,其中80后、90后是餐饮外卖服务的中坚消费⼒量,消费者使⽤餐饮外卖服务也不再局限于传统的⼀⽇三餐,下午茶和夜宵逐渐成为消费者的外卖新宠。为把握这⼀商业机遇,ChinaSkills公司计划进驻外卖平台市场,现需对⼤规模成熟外卖平台进⾏详细评估调研,采集多⽅多维度数据,寻找⾏业痛点,摸清市场需求,以技术为⼿段为投资保驾护航。
为完成该项⼯作,你所在的⼩组将应⽤⼤数据技术,以Python、Java、Scala作为整个项⽬的基础开发语⾔,基于⼤数据平台综合利⽤MapReduce、Spark、MySQL、Scrapy、Flask、ECharts等,对数据进⾏获取、处理、清洗、挖掘、分析、可视化呈现,⼒求实现对公司未来的重点战略⽅向提出建议。
你们作为该⼩组的技术⼈员,请按照下⾯任务完成本次⼯作,并编制综合报告。
模块A:Hadoop平台及组件的部署管理(15分)
环境说明:
编号主机名类型⽤户密码
1master主节点root passwd
2slave1从节点root passwd
3slave2从节点root passwd
补充说明:主节点MySQL数据库⽤户名/密码:root/Password123$
相关软件安装包在/chinaskills⽬录下
所有模块中应⽤命令必须采⽤绝对路径
任务⼀:Hadoop HA部署管理
本环节需要使⽤root⽤户完成相关配置,安装Hadoop需要配置前置环境,具体部署要求如下:
sophie hunter
1. 将/chinaskills下的JDK包解压到/usr/local/src路径下,命令复制并粘贴⾄对应报告中;
2. 设置JDK环境变量,并使环境变量只对当前root⽤户⽣效;将环境变量配置内容复制并粘贴⾄对应报告中;
3. 从master复制JDK环境变量⽂件到slave1、slave2节点,命令和结果复制并粘贴⾄对应报告中;
锦州翻译公司
赤色危机4. 配置SSH密钥登录,实现从master登录到slave1,命令和结果复制并粘贴⾄对应报告中;
lfishness5. Zookeeper配置完毕后,在slave2节点启动Zookeeper,查看Zookeeper运⾏状态,将命令和结果复制并粘贴⾄对应报告中;
6. Zookeeper、Hadoop HA配置完毕后,在master节点启动Hadoop,并查看服务进程状态,并将结果复制并粘贴⾄对应报告中;
7. Hadoop HA配置完毕后,在slave1节点查看服务进程,将命令及结果复制并粘贴⾄对应报告中。
walk the walk任务⼆:Hive部署管理
本环节需要使⽤root⽤户完成相关配置,已安装Hadoop及需要配置前置环境,具体部署要求如下:
1. 将指定路径下的Hive安装包解压到(/usr/local/src)下,使⽤绝对路径,将命令复制并粘贴⾄对应报告中;
2. 把解压后的apache-hive-1.1.0-bin⽂件夹更名为hive;进⼊hive⽂件夹,并将查看命令及结果复制并粘贴⾄对应报告中;
3. 设置Hive环境变量,并使环境变量只对当前root⽤户⽣效;并将环境变量配置内容复制并粘贴⾄对应报告中;
4. 将Hive安装⽬录⾥plate⽂件更名为l;并将更改命令复制并粘贴⾄对应报告中;
5. 通过VI编辑器配置l⽂件,将MySQL数据库作为Hive元数据库。将配置⽂件“Hive元存储”相关内容复制并粘贴⾄对应
报告中;
6. 初始化Hive元数据,将MySQL数据库JDBC驱动拷贝到Hive安装⽬录的lib⽂件夹下;并通过schematool命令执⾏初始化,将初始化
结果复制粘贴⾄对应报告中;
7. 启动Hive并保存命令输出结果,将结果输出复制粘贴⾄对应报告中。
任务三:Sqoop组件部署管理
本环节需要使⽤root⽤户完成相关配置,已安装Hadoop及需要配置前置环境,具体部署要求如下:
1. 解压/chinaskills路径下的Sqoop安装包到/usr/local/src路径下,并使⽤相关命令,修改解压后⽂件夹名为sqoop,进⼊sqoop⽂
件夹,并将查看内容复制粘贴⾄对应报告中;
2. 修改Sqoop环境变量,并使环境变量只对当前root⽤户⽣效,并将变量内容复制粘贴⾄对应报告中;
3. 修改并配置sqoop-env.sh⽂件,并将修改内容复制粘贴⾄对应报告中;
4. 测试Sqoop连接MySQL数据库是否成功,结果复制粘贴⾄对应报告中。
模块B:数据采集与处理(20分)
项⽬背景说明
1. 查看餐饮外送统计平台⽹站源码结构。
1. 打开⽹站,在⽹页中右键点击检查,或者F12快捷键,查看源码页⾯;
2. 检查⽹站:浏览⽹站源码查看所需内容。
1. 从餐饮外送统计平台中采集需要数据,按照要求使⽤Python语⾔编写代码⼯程,获取指定数据项,并对结果数据集进⾏必要的数据处
理。请将符合任务要求的结果复制粘贴⾄对应报告中。
具体步骤如下:
1. 创建⼯程⼯程项⽬:C:\food_delivery
2. 构建采集请求
3. 按要求定义相关字段
4. 获取有效数据
すき5. 将获取到的数据保存到指定位置
6. 对数据集进⾏基础的数据处理
⾄此已从餐饮外送统计平台中获取所需数据,并完成了必要的基础的数据处理。
1. ⾃⾏创建Scrapy⼯程项⽬food_delivery,路径为C:\ food_delivery按照任务要求从餐饮外送统计平台中获取数据。提取“商户数
据”页⾯相关字段(包括平台餐厅ID、餐厅名称、城市等全部有效数据项),保存⾄⽂件restaurant_data.json;再提取“配送平台灰测维度数据”页⾯相关数据(包括餐厅名称、城市、营业时长等全部字段)保存⾄⽂件grey_test.json。
2. 每条数据记录请以单独⼀⾏保存,信息存储格式为key:value。⽂件保存路径为:C:\output。
⽰例:
时间表示
{" rest_id ": "***", " rest_name ": "***",……},
{" rest_id ": "***", " rest_name ": "***",……},
……
1. 任务中要求将“以下内容及答案完整复制粘贴⾄对应报告中。”,粘贴到对应报告中的内容⽰例如下:
配送范围审核相关数据页数为:100
灰度数据对⽐相关数据页数为:100
任务⼀:爬取⽹页信息
⾃⾏创建Scrapy⼯程编写爬⾍代码,爬取“配送范围审核-⼈员预算”与“灰度数据对⽐”页⾯相关数据,通过爬⾍代码分页爬取,以合理的程序逻辑判断相关数据包含的页数并将以下内容及答案完整复制粘贴⾄对应报告中。
⽰例格式:
配送范围审核相关数据页数为:
灰度数据对⽐相关数据页数为:
任务⼆:爬取指定⽂件
运⾏代码,爬取⽹页数据⾄指定⽂件。查看⽂件并填写采集到的记录⾏数,并将答案复制粘贴⾄对应报告中。
⽰例格式:
range_audited.json⾏数为:
grey_value.json⾏数为:
任务三:属性判断
审查爬取的range_audited数据,判断属性“申请时间”、“创建时间”与“created_at”、“updated_at”是否为重复属性。如果为重复属性,则删除“申请时间”、“创建时间”;如果不是重复属性,请输出数据集中数值不相同的记录条数。并将答案复制粘贴⾄对应报告中。
(1)如果仅考虑年、⽉、⽇数据,忽略时、分、秒信息,“申请时间”、“创建时间”与“created_at”、“updated_at”是否为重复属性(请填写“是”/“否”):迪拜酋长购物中心
(2)如果不是重复属性,不同的记录条数为(如果为重复属性,请填写“/”)。
任务四:数据探索
针对爬取的grey_value数据,利⽤DataFrame.describe⽅法探索数据基本情况,将输出结果复制粘贴⾄对应报告中。
任务五:缺失值统计
针对缺失值较多的属性“推单数-8⽇”,“有效完成率-8⽇”,“超时率-8⽇”,请分别计算下列任务,并将正确答案复制粘贴⾄对应报告中。
(1)属性“推单数-8⽇”空值记录条数为: ,中位数为: 。
(2)属性“有效完成率-8⽇”空值记录条数为: ,平均值为: 。
(3)属性“超时率-8⽇”空值记录条数为: ,平均值为: 。
任务六:缺失值处理
请根据任务5中计算的结果,对数据集中存在空值的字段进⾏填充。查看填充后的数据集前5条记录,将查看结果复制粘贴⾄对应报告中。
模块C:数据清洗与挖掘分析(25分)
项⽬背景说明
餐饮外卖平台的核⼼价值体现在配送,⽽配送的价值则依赖于商家与客户的双向选择。外卖平台通常会通过内容激活消费者和商家两个群体的活跃度。消费者会参考平台展⽰的内容选择商家,商家也会
以消费者评价与平台统计数据为依据调整策略,由此再吸引更多的⽤户下单、评论、形成正向循环。保证配送的时效与品质是从优化⽤户体验的⾓度,吸引更多的⽤户参与,进⽽带动商家不断⼊驻。由此,商家、消费者、骑⼿在平台上形成越来越多的真实可靠的数据,帮助消费者更好的做出消费决策,同时促进商家提⾼服务质量。⽽平台通过数据,不断调整优化服务,从⽽不断提升这种多边⽹络效应。提升⽹络效应的直接结果就是⽤户和商家规模⼤幅提升,进⽽形成规模效应——降低获客成本、提⾼效益,并且不断提升⾃⼰的⾏业壁垒。
为探索各⼤外卖平台的市场策略与经营模式,现已从平台获取到了原始数据集,包含“餐厅id,retailer_id,餐厅名称,城市,商户业务包,配送范围,客单价,推单数,接单数,有效完成单数,投诉率,异常率,欺诈单数,拒单数,商户取消数,客户取消数,系统取消数,配送取消异常数,整体时长,接单时长,到店时长,取餐时长,送达时长,商户投诉数,⽤户投诉数,差评数,好评数,评价数,最远订单距离,该订单整体时效,该订单接单时效,该订单到店时效,该订单取餐时效,该订单送达时效,该订单评价”字段。为保障⽤户隐私和⾏业敏感信息,已经对数据脱敏。数据脱敏是指对某些敏感信息通过脱敏规则进⾏数据的变形,实现敏感隐私数据的可靠保护。在涉及客户安全数据或⼀些商业性敏感数据的情况下,对真实数据进⾏改造并提供测试使⽤,如⾝份证号、⼿机号等个⼈敏感信息都需要进⾏数据脱敏。本题已将脱敏后的数据存放于平台对应任务/chinaskills⽬录下。⼯程所需配置⽂件l存放于“C:\清洗配置⽂件”。任务中所有命令务必使⽤绝对路径。
任务⼀:数据清洗
⼦任务1
任务背景:
数据源为众多⽹站及平台的数据汇总,且为多次采集的结果,在整合多来源数据时可能遇到数据冲突,或数据拼接导致的属性列⽭盾等情况。请根据任务具体参数要求,针对原始数据集中不符合业务逻辑的属性列进⾏清洗,并写⼊指定的数据库或数据⽂件,复制并保存结果。
任务描述:
数据源⽂件存放于平台对应任务/chinaskills⽬录下,其中属性“推单数”是指外卖平台通过顾客点单向商家推送的订单数量,“接单
数”为商家根据⾃⾝情况,最终选择接受订单的数量。⼀般来说,商家对于平台推送的订单,排除⾃⾝原因,例如原材料耗尽、⽤户下单时店铺已经打烊等特殊情况,都会选择接单。请按照如下要求编写Spark程序对数据进⾏清洗,并将结果输出/diliveryoutput1。
1. 分析/chinaskills中数据⽂件
2. 针对属性列“推单数”、“接单数”,排查并删除异常数据条⽬
3. 程序打包并在Spark平台运⾏,结果输出⾄HDFS⽂件系统/diliveryoutput1
具体任务要求:
1、将相关⽂件上传⾄HDFS新建⽬录/platform_data中,编写Spark程序,剔除属性列“推单数”⼩于“接单数”的异常数据条⽬,并在程序中以打印语句输出异常条数。将打印输出结果复制并保存⾄对应报告中。(复制内容需包含打印语句输出结果的上下各 5 ⾏运⾏⽇志)。
⽰例格式:
===“推单数”⼩于“接单数”的异常数据条数为***条===
2、程序打包并在Spark平台运⾏,将剔除异常数据后的结果数据集输出⾄HDFS⽂件系统/diliveryoutput1。并查看输出⽂件前20⾏,将查看命令与执⾏结果复制粘贴⾄对应报告中。
⼦任务2
任务背景:
客单价是指客户在该商铺下⼀单的平均⽀付价格。根据商家定位不同,可以分为⾼客单价和低客单价。⾼客单价,单量⼀般表现平平;低单价则通常会获得更⾼的单量。不同的定价针对的消费⼈群不同、选择的位置不同、营业的时间也不同。⾼客单价的品类偏向于⽩领⼈群,⼀般说来办公楼覆盖越多的位置越好,但是办公楼并不⼀定都是⽩领⼈群,所以办公楼也要区分区域性,客户⾏业越是前沿的,具备消费能⼒越⾼,但晚上和周末的单量⼀般较少。低客单价的品类偏向于⼤众化,选址优先办公/⼤学区/⼩区综合覆盖区域,满⾜低消费与⼀般消费能⼒⽤户群。当前数据源因涉及到多个平台及数据库对接,个别信息由于⼈为操作失误或计算机故障等原因产⽣了数据缺失值。缺失值是⼀种常见的脏数据情况。对于缺失值的处理,从总体上来说分为缺失值删除和缺失值插补两种处理⽅式。当缺失值过多时,信息条⽬本⾝的价值也会随之降低,此时如果对缺失值进⾏填补,则数据分析结果可能会受到⼲扰,有失客观性。结合⾏业数据本⾝特点及上述考虑,对于数据集中数值字段缺失的情况,通常可以采⽤填充固定值、均值、中位数、KNN 填充、以及把缺失值作为新的 label 等⽅式处理。同时,不当的填充可能会令后续的分析结果出现导向性偏差,当缺失信息的记录数较少时可采⽤删除的⽅式来进⾏处理。下⾯请根据任务具体参数要求处理关键字段缺失。
任务描述:
请以前置任务的结果数据集/diliveryoutput1作为输⼊数据源,编写 Spark 程序,按照如下要求实现对数据的清洗,并将结果输出。
1. 解析/diliveryoutput1 中的⽂件
2. 针对数据集“客单价”属性,审查缺失值数量
3. 当缺失值⽐例⼩于5%时,对包含缺失值数据的样本进⾏删除
当缺失值⽐例⼤于5%时,对缺失值字段进⾏中位数填充
1. 程序打包并在Spark平台运⾏,结果输出⾄HDFS⽂件系统/diliveryoutput2
具体任务要求:
1、根据任务要求,编写Spark程序,针对数据集“客单价”属性,审查缺失值数量,并打印输出,将打印输出结果复制并粘贴⾄对应报告中(复制内容需包含打印语句输出结果的上下各 5 ⾏运⾏⽇志)。
⽰例格式:
===“客单价”属性缺失记录为***条,缺失⽐例**%===
2、缺失值处理
a)当缺失⽐例⼩于5%时,对含缺失值数据记录进⾏删除,同时在对应答案报告中粘贴如下内容(复制内容需包含打印语句输出结果的上下各 5 ⾏运⾏⽇志):
⽰例格式:
===“客单价”缺失记录已删除===
b)当缺失⽐例⼤于5%时,利⽤“客单价”属性中位数对缺失值进⾏填充,并将中位数打印输出,将打印输出结果复制并粘贴⾄对应报告中(复制内容需包含打印语句输出结果的上下各 5 ⾏运⾏⽇志)。
sofa怎么读
⽰例格式:
===“客单价”属性中位数为***天===nice的意思是什么
3、将清洗后的数据集输出⾄/diliveryoutput2,并查看输出⽂件前10⾏,将查看命令与执⾏结果复制粘贴⾄对应报告中。
任务⼆:数据挖掘分析
任务背景:
聚类分析⼜称群分析,它是研究分类问题的⼀种统计分析⽅法,同时也是数据挖掘的⼀个重要算法。聚类分析是由若⼲模式组成的。通常,模式是⼀个度量的向量,或者是多维空间中的⼀个点。聚类分析以相似性为基础,同⼀个聚类簇中的模式之间具有相似性,不同聚类簇之间具有相异性。
在商业上,聚类可以帮助平台市场分析⼈员从数据中区分出不同的商家群体,并提取每⼀类商家的经营模式。它作为数据挖掘中的⼀个模块,可以作为⼀个单独的⼯具以发现数据中的深层的信息,并且提取出每⼀类样本的特点,或者把注意⼒放在某⼀个特定的类上以作进⼀步的分析;同时,聚类分析也可以作为数据挖掘算法中其他分析算法的⼀个预处理步骤。本题数据请采⽤数据清洗的输出⽂
件/diliveryoutput2。⼯程所需配置⽂件l存放于“C:\分析与挖掘配置⽂件”。任务中所有命令务必使⽤绝对路径。