【GZ-2021041】2021年全国职业院校技能大赛高职组大数据技术与应用赛项(PDF版)

资源下载
  1. 二一教育资源

【GZ-2021041】2021年全国职业院校技能大赛高职组大数据技术与应用赛项(PDF版)

资源简介

2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
2021年全国职业院校技能大赛
高职组
“大数据技术与应用”
赛项赛卷(GZ-2021041-5卷)



(共 30页)
参赛队编号:
1
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
背景描述
据央视财经报道,2020 年我国 O2O 市场规模突破万亿元,O2O 市
场存在着巨大的潜力。特别是餐饮和外卖行业,占据市场较大份额,
并且业务增长迅速。截至 2020 年底,全国外卖总体订单量已超过
171.2亿单,同比增长 7.5%,全国外卖市场交易规模达到 8352亿元,
同比增长 14.8%。我国外卖用户规模已接近 5 亿人,其中 80 后、90
后是餐饮外卖服务的中坚消费力量,消费者使用餐饮外卖服务也不再
局限于传统的一日三餐,下午茶和夜宵逐渐成为消费者的外卖新宠。
为把握这一商业机遇,ChinaSkills公司计划进驻外卖平台市场,现
需对大规模成熟外卖平台进行详细评估调研,采集多方多维度数据,
寻找行业痛点,摸清市场需求,以技术为手段为投资保驾护航。
为完成该项工作,你所在的小组将应用大数据技术,以 Python、
Java、Scala作为整个项目的基础开发语言,基于大数据平台综合利
用 Spark、MySQL、Scrapy、Flask、ECharts 等,对数据进行获取、
处理、清洗、挖掘、分析、可视化呈现,力求实现对公司未来的重点
战略方向提出建议。
你们作为该小组的技术人员,请按照下面任务完成本次工作,并
编制综合报告。
2
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
模块 A:大数据平台及组件的部署管理(15 分)
环境说明:
编号 节点类型 节点 IP地址 用户名 密码
1 Master 192.168.5.188 root 123456
2 Slave1 192.168.5.182 root 123456
3 Slave2 192.168.5.181 root 123456
补充说明:各节点可通过客户端 XShell工具进行 SSH访问;
Master节点 MySQL数据库用户名/密码:root/123456;
相关软件安装包在 Master节点的/chinaskills目录下,请选择对
应的安装包进行安装,用不到的可忽略;
所有模块中应用命令必须采用绝对路径。
任务一:Hadoop 完全分布式部署管理
本环节需要使用 root用户完成相关配置,安装 Hadoop需要配置前置环
境。命令中要求使用绝对路径,具体部署要求如下:
1、 将 master节点 JDK安装包解压并移动到/usr/local/src路径,将命令复制
并粘贴至客户端桌面【Release\模块 A提交结果.docx】中对应的任务序号
下;
2、 修改/root/.bash_profile 文件,设置 JDK 环境变量,配置完毕后在 master
节点分别执行“java”和“javac”命令,将命令行执行结果分别截图并粘贴
至客户端桌面【Release\模块 A提交结果.docx】中对应的任务序号下;
3、 请完成 host相关配置,将三个节点分别命名为 master、slave1、slave2,
从 master 复制上面步骤配置的 JDK环境变量文件以及 JDK解压后的安装文
件到 slave1、slave2 节点,将全部复制命令复制并粘贴至客户端桌面
3
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
【Release\模块 A提交结果.docx】中对应的任务序号下;
4、 配置 SSH免密登录,实现从 master登录到 slave1,将登录命令和执行结果
复制粘贴至客户端桌面【Release\模块 A提交结果.docx】中对应的任务序
号下;
5、 将配置文件 hadoop-env.sh变更内容复制粘贴至客户端桌面【Release\模
块 A 提交结果.docx】中对应的任务序号下;
6、 将配置文件 core-site.xml变更内容复制粘贴至客户端桌面【Release\模
块 A 提交结果.docx】中对应的任务序号下;
7、 初始化 Hadoop环境 namenode,将命令及初始化结果复制粘贴至客户端桌面
【Release\模块 A提交结果.docx】中对应的任务序号下;
8、 查看 master节点 jps进程,将查看结果复制粘贴至客户端桌面【Release\
模块 A提交结果.docx】中对应的任务序号下。
任务二:Spark 组件部署管理(Standalone 模式)
本环节需要使用 root用户完成相关配置,具体部署要求如下:
1、 在 master 节点解压 scala 安装包,将解压后的安装文件移动到
“/usr/local/src”路径下并更名为 scala,将全部命令复制并粘贴至客户
端桌面【Release\模块 A提交结果.docx】中对应的任务序号下;
2、 设置 scala 环境变量,并使环境变量只对 root 用户生效,将变量配置内容
复制粘贴至客户端桌面【Release\模块 A 提交结果.docx】中对应的任务序
号下;
3、 进入 scala命令行界面,将查看结果复制粘贴至客户端桌面【Release\模块
A提交结果.docx】中对应的任务序号下;
4、 在 master 节点解压 Spark 安装包,将解压后的安装文件移动到
“usr/local/src”路径下,并更名为 spark,将全部命令复制粘贴至客户端
桌面【Release\模块 A提交结果.docx】中对应的任务序号下;
4
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
5、 修改 spark-env.sh.template 为 spark-env.sh 并在其中配置 Spark 的
master 节点主机名、端口、worker结点的核数、内存,将修改的配置内容复
制粘贴至客户端桌面【Release\模块 A 提交结果.docx】中对应的任务序号
下;
6、 完善其他配置并启动 Spark(Standalone 模式)集群,启动 Spark Shell 连接
集群,将连接结果截图(截图需包含连接命令)粘贴至客户端桌面【Release\
模块 A提交结果.docx】中对应的任务序号下。
任务三:Hive 组件部署管理
本环节需要使用 root用户完成相关配置,具体部署要求如下:
1、将 master节点 Hive 安装包解压并移动到/usr/local/src下,将命令复制并
粘贴至客户端桌面【Release\模块 A 提交结果.docx】中对应的任务序号下;
2、把解压后的 apache-hive-1.2.2-bin文件夹更名为 hive;进入 hive 文件夹
使用 ls命令进行查看,并将查看结果复制并粘贴至客户端桌面【Release\
模块 A提交结果.docx】中对应的任务序号下;
3、设置 Hive 环境变量,并使环境变量只对当前 root 用户生效;并将环境变量
配置内容复制并粘贴至客户端桌面【Release\模块 A提交结果.docx】中对应
的任务序号下;
4、将 Hive安装目录里 hive-default.xml.template文件更名为 hive-site.xml;
并将更改命令复制并粘贴至客户端桌面【Release\模块 A提交结果.docx】中
对应的任务序号下;
5、修改 hive-site.xml 配置文件,将 MySQL 数据库作为 Hive元数据库。将配置
文件中配置 Hive 元存储的相关内容复制并粘贴至客户端桌面【Release\模块
A提交结果.docx】中对应的任务序号下;
5
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
6、初始化 Hive元数据,将 MySQL数据库 JDBC 驱动拷贝到 Hive安装目录的 lib
文件夹下;并通过 schematool相关命令执行初始化,将初始化结果复制粘贴
至客户端桌面【Release\模块 A提交结果.docx】中对应的任务序号下;
7、完善其他配置并启动 Hive,将命令行输出结果复制粘贴至客户端桌面
【Release\模块 A提交结果.docx】中对应的任务序号下。
6
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
模块 B:数据采集与处理 (20 分)
项目背景说明
1、查看餐饮外送统计平台网站源码结构。
1)网 站 前 台 : 192.168.5.179:8080 , 网 站 后 台 :
192.168.5.179:8090;
2)打开网站,在网页中右键点击检查,或者 F12快捷键,查看
源码页面;
3)检查网站:浏览网站源码查看所需内容。
2、从餐饮外送统计平台中采集需要数据,按照要求使用 Python语言
编写代码工程,获取指定数据项,并对结果数据集进行必要的数
据处理。请将符合任务要求的结果复制粘贴至对应报告中。
具体步骤如下:
1)创建工程项目:C:\food_delivery_crawl
2)构建采集请求
3)按要求定义相关字段
4)获取有效数据
5)将获取到的数据保存到指定位置
6)对数据集进行基础的数据处理
至此已从餐饮外送统计平台中获取所需数据,并完成了必要的基
础的数据处理。
3、自行创建 Scrapy 工程项目 food_delivery_crawl,路径为 C:\
food_delivery_crawl,按照任务要求从餐饮外送统计平台中获取
7
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
数据。
4、每条数据记录请以单独一行保存,信息存储格式为 key:
value。数据文件保存路径为:C:\crawl_output。
示例:
[
{"key1": "***", "key2": "***",……},
{"key1": "***", " key2": "***",……},
……
{"key1": "***", " key2": "***",……}
]
任务一:爬取“配送平台”页面相关数据
自行创建 Scrapy 工程,编写工程代码,爬取“配送平台”页面相关数据,
通过工程代码分页爬取,将使用 re 解析分页链接的程序源代码(正则表达式需
能体现url的构造规律)复制粘贴至客户端桌面【Release\模块B提交结果.docx】
中对应的任务序号下。
任务二:爬取“店铺运营数据”页面相关数据
编写工程代码,爬取“店铺运营数据”页面相关数据,通过工程代码分页爬
取,将使用 re 解析分页链接的程序源代码(正则表达式需能体现 url 的构造规
律)复制粘贴至客户端桌面【Release\模块 B 提交结果.docx】中对应的任务序
号下。
8
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
任务三:将数据存入 json 文件
运行代码,爬取“配送平台”页面与“店铺运营数据”页面数据分别至
distribution.json 与 store_operation_data.json文件。查看文件并填写采集
到的记录行数,并将以下内容及答案在 PyCharm 控制台打印输出,将输出结果截
图粘贴至客户端桌面【Release\模块 B提交结果.docx】中对应的任务序号下。
打印示例格式:
distribution.json 数据行数:
store_operation_data.json数据行数:
任务四:删除异常样本
distribution.json 文件中,请剔除属性列“客户取消数”小于“商户取消
数”的异常数据条目,并在 PyCharm控制台打印输出删除的样本条数,并将打印
输出结果截图粘贴至客户端桌面【Release\模块 B 提交结果.docx】中对应的任
务序号下。
打印示例格式:
===因异常样本记录,删除样本条数为***条===
任务五:缺失值处理
请以任务四的结果数据集作为数据源,针对“到店时长”属性,审查缺失值
数量:
(a)当缺失值比例小于 5%时,对包含缺失值数据的样本进行删除。
(b)当缺失值比例大于等于 5%时,对缺失值字段进行均值填充。
在 PyCharm控制台按以下示例格式打印输出结论,并将打印输出结果截图粘
贴至客户端桌面【Release\模块 B提交结果.docx】中对应的任务序号下。
打印示例格式:
===“到店时长”属性缺失值比例小于 5%,删除样本条数为***条===
或:
9
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
===“到店时长”属性缺失值比例大于等于 5%,平均值为:***,填充样本条
数为***条===
任务六:划分数据集
请针对 store_operation_data.json数据集,根据属性“超时率(9日)”划
分 数 据 集 store_operation1.json ( 超 时 率 (9 日 ) 小 于 等 于 5% ),
store_operation2.json(超时率(9日)大于 5%),保存路径为:C:\crawl_output。
并在 PyCharm 控制台打印输出两个数据集的数据记录条数,并将打印输出结果截
图粘贴至客户端桌面【Release\模块 B提交结果.docx】中对应的任务序号下。
打印示例格式:
===store_operation1.json包含样本条数为***条===
===store_operation2.json包含样本条数为***条===
10
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
模块 C:数据清洗与挖掘分析(25 分)
环境说明:
编号 节点类型 节点 IP地址 用户名 密码
1 Master 192.168.5.184 root passwd
2 Slave1 192.168.5.189 root passwd
3 Slave2 192.168.5.185 root passwd
补充说明:各节点可通过客户端 XShell工具进行 SSH访问,并且已
安装好大数据集群;
Master节点 MySQL数据库用户名/密码:root/Password123$ ;
清洗数据源在 Master节点的/chinaskills目录下;
所有模块中应用命令必须采用绝对路径。
项目背景说明
餐饮外卖平台的核心价值体现在配送,而配送的价值则依赖于商
家与客户的双向选择。外卖平台通常会通过内容激活消费者和商家两
个群体的活跃度。消费者会参考平台展示的内容选择商家,商家也会
以消费者评价与平台统计数据为依据调整策略,由此再吸引更多的用
户下单、评论、形成正向循环。保证配送的时效与品质是从优化用户
体验的角度,吸引更多的用户参与,进而带动商家不断入驻。由此,
商家、消费者、骑手在平台上形成越来越多的真实可靠的数据,帮助
消费者更好的做出消费决策,同时促进商家提高服务质量。而平台通
过数据,不断调整优化服务,从而不断提升这种多边网络效应。提升
11
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
网络效应的直接结果就是用户和商家规模大幅提升,进而形成规模效
应——降低获客成本、提高效益,并且不断提升自己的行业壁垒。
为探索各大外卖平台的市场策略与经营模式,现已从及平台获取
到了原始数据集,包含“餐厅 ID,城市,商户业务包,配送范围”等
多项字段。为保障用户隐私和行业敏感信息,已经对数据脱敏(数据
脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐
私数据的可靠保护,在涉及客户安全数据或一些商业性敏感数据的情
况下,对真实数据进行改造并提供测试使用,如身份证号、手机号等
个人敏感信息都需要进行数据脱敏)。本模块已将脱敏后的数据存放
于 Master 节点的/chinaskills 目录下。工程所需配置文件 pom.xml
存放于客户端“桌面\Resource\数据清洗与挖掘分析配置文件”下。
任务中所有命令务必使用绝对路径。
任务一:数据清洗
子任务 1
任务背景:
数据源为众多网站及平台的数据汇总,且为多次采集的结果,在整合多来源
数据时可能遇到数据重复,或数据拼接导致的属性列缺失或冗余等情况。请根据
任务具体参数要求,针对原始数据集进行清洗,并写入指定的数据库或数据文件,
复制并保存结果。
任务描述:
数据源文件存放于 Master节点的/chinaskills 目录下,请按照如下要求编
写 Scala 程序对数据进行清洗,并将结果输出保存。
1) 分析/chinaskills 中 json数据文件;
2) 编写程序针对数据进行相应的分析及处理;
12
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
3) 程序打包并在 Spark(Standalone模式)集群运行,结果输出至 HDFS文
件系统/diliveryoutput1 目录(自行创建)下以及/diliveryoutput2目
录(自行创建)下。
具体任务要求:
1、将 Master 节点/chinaskills 中 json 数据源文件上传至 HDFS 新建目录
/platform_data 中,读取相关数据文件,查看文件包含数据记录数并在 XShell
命令行中打印,将打印输出结果截图并粘贴至客户端桌面【Release\模块 C提交
结果.docx】中对应的任务序号下。
打印示例格式:
文件数据记录数为:
2、编写 Scala 程序读取任务 要求 1 的数据结果,先针对属性列
“platform_A_restid”重复的样本,以重复样本记录的“A_day_30_cnt”与
“B_day_30_cnt”属性均值分别作为这两个属性的值,并删除多余样本,保留
“ updated_at ” 值 最 近 的 那 条 样 本 ; 再 对 结 果 数 据 集 针 对 属 性 列
“platform_B_restid”重复的样本,以重复样本记录的“A_day_30_cnt”与
“B_day_30_cnt”属性均值分别作为这两个属性的值,并删除多余样本,保留
“updated_at”值最近的那条样本,并在 XShell 命令行中以打印语句输出删除
的样本条数。请将结果数据集 json文件输出至 HDFS文件系统/diliveryoutput1
目录下(将分区数设置为 1)。将打印输出结果截图并粘贴至客户端桌面
【Release\模块 C提交结果.docx】中对应的任务序号下。(截图内容需包含打印
语句输出结果的上下各 5 行运行日志)。
打印示例格式:
===因重复样本记录,删除样本条数共计***条===
3、编写 Scala程序先读取任务要求 2的结果/diliveryoutput1中的数据,再删
除数据中缺失值大于 3 个的字段的数据条目,在 XShell 命令行中打印输出删除
条目数,将打印输出结果截图并粘贴至客户端桌面【Release\模块 C 提交结
果.docx】中对应的任务序号下。
打印示例格式:
=== “删除缺失值大于 3个的字段的数据条数为***条”===
13
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
4、将任务要求 3处理后的数据记录以[latitude,longitude,A_day_30_cnt]依次
降序排列,并将结果数据集 json 文件输出至 HDFS 文件系统/diliveryoutput2
目录下(将分区数设置为 1)。在 XShell命令行中使用 Hadoop Shell 相关命令直
接查看结果数据文件前 5条记录。将查看命令及查看结果复制并粘贴至客户端桌
面【Release\模块 C 提交结果.docx】中对应的任务序号下。
子任务 2
1、编写 Scala 程序,读取大数据集群 HDFS 文件系统中/aggr_wm 目录下的 json
数据,将 city_rst_info 根据“/t”拆分数据单元,同时每个数据单元中包含
A_rst_name、餐厅状态、订单数这三个字段并用“:”分割,最终将这三个字段
分别独立成列,并按照 city_name,、A_rst_name,、status,、order 进行字典排
序, 将数据保存为 json文件并保存至 HDFS文件系统/diliveryoutput8目录(自
行创建,将分区数设置为 1)下, 在 XShell 命令行中使用 Hadoop Shell 相关命
令直接查看前 10条记录,将查看结果截图粘贴至客户端桌面【Release\模块 C提
交结果.docx】中对应的任务序号下。
源数据:
字段名 中文解释 备注
city_name 城市 例如:北京
city_rst_info 城市中的参观相关信息 字段内容为: A_rst_name: 餐厅
状态: 订单数/t A_rst_name: 餐
厅状态: 订单数…
例如:
北京 常来饭店:正常: 406/t喜乐多:异常: 385/t
拆分后格式为:
字段名 中文解释 备注
city_name 城市名称
A_rst_name 餐厅名称
status 状态
order 订单数
例如:
city_name A_rst_name status order
北京 常来饭店 正常 406
北京 喜乐多 异常 385
2、 编写 Scala程序,基于/diliveryoutput8 目录下的数据,在同一城市中,按
14
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
照 order 进行跳跃顺序排序生成 seq 字段(order 值相同,则排序是一样的,下
一个排序会跳过,例如前两条数据的 order 值相同但和第 3 条的 order 值不同,
则排序的 seq值为 1,1,3),再按照 city_name、seq、A_rst_name、status进
行字典排序并生成索引序列 index,将结果数据 json文件保存至 HDFS 文件系统
/diliveryoutput9目录(自行创建,将分区数设置为 1)下, 在 XShell 命令行
中使用 Hadoop Shell 相关命令直接查看前 10 条记录,将查看结果截图粘贴至客
户端桌面【Release\模块 C提交结果.docx】中对应的任务序号下。
格式为:
字段名 中文解释 备注
index 索引序列 例如:1,2,3,4,5
city_name 城市名称
A_rst_name 餐厅名称
status 餐厅状态 例如:正常/异常
order 订单数
seq 组内排序序列 例如:1,1,3,3,5
任务二:数据挖掘分析
子任务 1
任务背景:
网格化营销是近年来新兴的一种营销管理模式,已被广泛地运用于市场精准
营销。在市场营销中,采取地图营销、网格管理、精准策略等,可将客户的心理
需求与其日常生活紧密地联系起来,巧妙运用网格化管理和营销地图,以此来实
现客户的营销精准度与价值提升,提高单一客户贡献值和营销效率。其核心旨在
帮助企业快速响应市场需求,为用户提供更加便捷的、专业化服务,并使企业的
资源分配以客户为中心,以市场变化为导向,固本强基、开拓市场、提升效益,
有助于平台有效地制定绩效战略。请根据任务具体参数要求,针对相关数据集进
行分析,并写入指定的数据库或数据文件,复制并保存结果。
任务描述:
数据源文件为数据清洗子任务 1 的结果数据( HDFS 文件系统
/diliveryoutput2目录下的数据),按照如下要求编写 Scala程序实现对数据的
15
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
挖掘分析。
1) 解析相关数据源 json文件;
2) 按网格汇总“餐厅总数”、“近 7天平台单量”、“近 7天推单”并进行
相关计算;
3) 程序打包并在 Spark(Standalone模式)集群上运行,输出结果。
具体任务要求:
1、读取相关数据文件,参考“网格 ID、网格名称、餐厅 ID、近 7 天平台单量、
近 7 天推单、餐厅名”等相关字段,按网格 ID 统计“餐厅总数”、“近 7 天平台
单量”总数、”近 7 天推单”总数,并以餐厅总数降序排列,在 XShell 命令行中
以打印语句输出餐厅总数前 5位的网格相关信息。将打印输出结果截图粘贴至客
户端桌面【Release\模块 C提交结果.docx】中对应的任务序号下。
打印示例格式:
===网格 ID:***,网格名称:***,近 7 天平台总单量:***,近 7 天推单总
量:***===
子任务 2
任务背景:
聚类分析又称群分析,它是研究分类问题的一种统计分析方法,同时也是数
据挖掘的一个重要算法。聚类分析是由若干模式组成的。通常,模式是一个度量
的向量,或者是多维空间中的一个点。聚类分析以相似性为基础,同一个聚类簇
中的模式之间具有相似性,不同聚类簇之间具有相异性。在商业上,聚类可以帮
助平台市场分析人员从数据中区分出不同的商家群体,并提取每一类商家的经营
模式。它作为数据挖掘中的一个模块,可以作为一个单独的工具以发现数据中的
深层的信息,并且提取出每一类样本的特点,或者把注意力放在某一个特定的类
上以作进一步的分析;同时,聚类分析也可以作为数据挖掘算法中其他分析算法
的一个预处理步骤。本题数据请采用数据清洗子任务 1 的结果数据集
/diliveryoutput2 中的数据。选择数据分析的维度通常分为用户维度、行为维
度和产品维度,想要对外卖平台入驻商家进行聚类划分,有侧重地分类评估商家
对平台的价值,首先需要针对商家数据选择核心数据集,为确保聚类模型收敛速
16
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
度与质量,以及消除量纲对聚类结果的影响,首先应对数据进行归一化或标准化
处理,再进行数据建模。
任务描述:
请以数据清洗子任务 1 的结果数据(大数据集群 HDFS 文件系统
/diliveryoutput2目录下的数据)作为输入数据源,按照如下要求编写 Scala程
序实现对数据的分析,并保存结果。
1) 解析/diliveryoutput2目录下的数据源文件。
2) 提取商家相关属性数据。
3) 针对商家地理位置进行聚类划分。
4) 查看聚类结果。
具体任务要求:
1、编写 Scala程序读取/diliveryoutput2数据源文件,筛选北京地区(“城市”
字段为“北京市”)商家数据记录形成筛选数据集,并将筛选数据集以 json文件
格式输出至 HDFS 文件系统/diliveryoutput4 目录(自行创建,将分区数设置
为 1)下。请在 XShell 命令行中以打印语句输出筛选得到的数据记录条数,并
将打印输出结果截图粘贴至客户端桌面【Release\模块 C 提交结果.docx】中对
应的任务序号下。(截图内容需包含打印语句输出结果的上下各 5 行运行日志)。
打印示例格式:
===北京地区样本条数为***条===
2、请使用上述的结果数据集/diliveryoutput4 中的数据,编写 Scala 程序,根
据北京地区商家的经纬度属性,对商家进行 k-means聚类,聚类数设为 5,迭代
次数为 2000次,请在 XShell命令行中以打印语句输出聚类中心、每个类的商家
数,以及该类所包含的商圈,并将打印输出结果复制并粘贴至客户端桌面
【Release\模块 C提交结果.docx】中对应的任务序号下。
打印示例格式:
=cluster 0: 聚类中心为[**,**],商家数为***个,包含商圈:【*,*,…】
=
=cluster 1: 聚类中心为[**,**],商家数为***个,包含商圈:【*,*,…】
=
17
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
……
3、请使用任务要求 1的结果数据集/diliveryoutput4 中的数据,结合任务要求
2的结论,编写 Scala 程序,分别统计各聚类中在平台 A与平台 B上架的商家数
量,以及同时上架两个平台的商家数量。在 XShell 命令行中以打印语句输出结
果,并将打印输出结果复制并粘贴至客户端桌面【Release\模块 C提交结果.docx】
中对应的任务序号下。
打印示例格式:
=cluster 0:【*,*,…】,A平台商家数量:**,B平台商家数量:**,同时
上架 A、B平台的商家数量:**=
=cluster 1:【*,*,…】,A平台商家数量:**,B平台商家数量:**,同时
上架 A、B平台的商家数量:**=
……
18
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
模块 D:数据可视化(20 分)
MySQL 数据库中的相关数据集包含了城市、商圈、商家标识 id、网格 ID、餐
品种类、标品属性等多项基础信息字段。请使用 Flask框架,结合 Echarts 完成
下列任务。
数据库地址:192.168.5.178
数据库账号:root
数据库密码:123456
数据库名:takeout
自行创建代码工程路径为:C:\food_delivery
任务一:双饼图呈现城市商户业务包占比
任务背景:
外卖平台在不同城市进行推广时应具有不同的侧重方面,城市具有不同的人
口数量及特点,例如居住人口数量、工作人口数量、过往人口数量、居民户数和
企事业单位数,及相应人口年龄、性别、职业和收入水平构成等。商户业务包是
指该商户在经营定位时所确定的主要消费群体。不同城市消费群占比不同,大致
可以分为大客户,白领,小客户,高校,家庭,其他六个商户业务包。请根据相
关数据集,按任务指定要求,统计并输出城市商户业务包相关的分析图例。
任务描述:
请根据 distribution_platform、store_basic_informations数据表中的相
关字段,统计不同城市的商户业务包组成,并以双饼图表达。
程序输出及可视化输出时请使用商户业务包中文释义,中文释义对应关系如
表 1所示。
字母缩写 中文释义
GKA 大客户
BL 白领
SIG 小客户
GX 高校
19
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
FML 家庭
OTH 其他
表 1 商户业务包中文释义
具体任务要求:
1、根据相关数据表中的字段,分析北京与广州两座城市在商户业务包属性占比
方面的差异。在 PyCharm 控制台打印输出两座城市不同商户业务包属性的商家数
量,以商家数量降序排列,将输出结果截图粘贴至客户端桌面【Release\模块 D
提交结果.docx】中对应的任务序号下。
打印示例格式:
==北京:1.商户业务包:***, 商家数量:***家===
==北京:2.商户业务包:***, 商家数量:***家===
……
==广州:1.商户业务包:***, 商家数量:***家===
==广州:2.商户业务包:***, 商家数量:***家===
……
2、使用 Flask框架,结合 Echarts,完成双饼图输出。要求标题分别为“北京商
户业务包属性占比”(左)、“广州商户业务包属性占比”(右),顺时针显示次序
与第 1小问的打印输出语句数据一致,将可视化结果截图(截图需包含浏览器地
址栏)并粘贴至客户端桌面【Release\模块 D 提交结果.docx】中对应的任务序
号下。
任务二:柱状堆叠图呈现商户业务包评价情况
任务背景:
在外卖平台中,用户的评论具有双向影响。不仅可以促进商家根据消费者评
价调整自己的经营策略,也能够影响其他用户的下单率。相关数据显示,浏览评
价的用户比只浏览门店商品的用户下单转化率平均高出 25%。因此,商家的店铺
评论对提高下单率是十分重要的。请根据相关数据集,按任务指定要求,统计并
输出评价相关的分析图例。
任务描述:
请根据 distribution_platform 数据表中的数据,统计各商户业务包评价情
况,并柱状堆叠图呈现。程序输出及可视化输出时请使用商户业务包中文释义。
20
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
具体任务要求:
1、根据相关数据表中的数据字段,统计各商户业务包差评数、好评数,并在
PyCharm 控制台以评价数降序打印输出,将输出结果截图粘贴至客户端桌面
【Release\模块 D提交结果.docx】中对应的任务序号下。
打印示例格式:
==1商户业务包:***,差评数:***条,好评数:***条===
==2商户业务包:***,差评数:***条,好评数:***条===
……
2、使用 Flask框架,结合 Echarts,完成柱状堆叠图输出。横坐标为商户业务包
名称(中文释义),纵坐标为评论数量,标题为“各业务包评价组成”,柱图下方
为好评数(红色),上方堆叠差评数(黑色),展示顺序与第 1小问的打印输出语
句一致,将可视化结果截图(截图需包含浏览器地址栏)并粘贴至客户端桌面
【Release\模块 D提交结果.docx】中对应的任务序号下。
任务三:玫瑰饼图呈现不同商户业务包投诉占比
任务背景:
投诉是顾客对平台管理和服务不满的表达方式,也是企业有价值的信息来源,
它为企业探索更多可能。分析顾客投诉的种种因素,把顾客的不满转化满意,锁
定他们对平台和产品的忠诚,已成为企业营销实践的重要内容之一。请根据相关
数据集,按任务指定要求,统计并输出投诉相关的分析图例。
任务描述:
请根据 distribution_platform、store_basic_informations 数据表中的数
据字段,统计北京地区(“city_name”字段为“北京”)不同“商户业务包”的
投诉数量(投诉数量为商户投诉数量和用户投诉数量之和),并以玫瑰饼图呈现。
具体任务要求:
1、根据相关数据库数据表中的字段,统计北京地区不同商户业务包投诉数量。
在 PyCharm 控制台打印输出不同商户业务包的投诉数量,以投诉数量降序排列,
将输出结果截图粘贴至客户端桌面【Release\模块 D 提交结果.docx】中对应的
任务序号下。
21
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
打印示例格式:
==商户业务包:***, 投诉数量:***家===
==商户业务包:***, 投诉数量:***家===
……
2、使用 Flask框架,结合 Echarts,完成玫瑰图输出。要求标题为“北京商户业
务包投诉占比”,顺时针显示次序与第 1 小问的打印输出语句数据一致,将可视
化结果截图(截图需包含浏览器地址栏)并粘贴至客户端桌面【Release\模块 D
提交结果.docx】中对应的任务序号下。
任务四:气泡图呈现商家分布的地理位置
任务背景:
商圈,指某商场以其所在地为原点,沿着一定的方向和距离扩展,吸引顾客
的辐射范围。简单地说,就是来店顾客所居住或工作的区域范围。无论餐厅规模
大小,其销售覆盖区域总是有一定的地理范围。这个地理范围就是以某商场为中
心,向四周辐射到可能来店消费的顾客所居住地或工作地。请按任务指定要求,
输出相关图例。
任务描述:
请根据 store_basic_informations 数据表中相关字段,明晰商圈与商铺聚
集程度之间的关系。请以经度为横坐标,纬度为纵坐标,绘制商家数量气泡图,
并以该地理位置的商家数量/10作为气泡半径。
具体任务要求:
1、提取数据表中相关字段,在控制台按照“商家数量”降序排列,打印输出前
10个商圈名称及包含的商家数量,将输出结果截图粘贴至客户端桌面【Release\
模块 D提交结果.docx】中对应的任务序号下。
打印示例格式:
==1: 商圈 ****=商家数为***个===
==2: 商圈 ****=商家数为***个===
……
2、使用 Flask框架,结合 Echarts,完成气泡图输出。要求气泡图标题为“商家
聚集地理位置展示”,横坐标为经度,纵坐标为纬度,以该商圈的商家数量/10作
为气泡半径,绘制气泡图(含全部商圈数据)。将可视化结果截图(截图需包含
22
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
浏览器地址栏)并粘贴至客户端桌面【Release\模块 D 提交结果.docx】中对应
的任务序号下。
任务五:双折线图呈现不同平台商家销量情况
任务背景:
市场份额亦称“市场占有率”。指某企业的销售量(或销售额)在市场同类品
类中所占比重。反映企业在市场上的地位。通常市场份额越高,竞争力越强。市
场占有率一般有 3 种基本测算方法:(1)总体市场份额,指某企业销售量在整个
行业中所占比重。(2)目标市场份额,指某企业销售量在其目标市场,即其所服
务的市场中所占比重。(3)相对市场份额,指某企业销售量与市场上最大竞争者
销售量之比,若高于 1,表明该企业其为这一市场的领导者。请按任务指定要求,
输出不同平台商家销售分析相关图例。
任务描述:
请根据 store_basic_informations 数据表中的数据,分别统计 A 平台与 B
平台 30 天销量最高的 10个商家的销量,并以共享 y轴的双折线图呈现。
具体任务要求:
1、根据相关数据表中相关字段,分别统计 A 平台与 B 平台 30 天销量最高的 10
个商家及销量,在控制台按照“30 天销量”降序打印输出商家标识 id,商家名
称,商家所属平台,30天销量,将输出结果截图粘贴至客户端桌面【Release\模
块 D提交结果.docx】中对应的任务序号下。
打印示例格式:
==商家标识 id: “商家名称”,Platform-A, 销量为***===
==商家标识 id: “****”,Platform-A, 销量为***===
……
==商家标识 id: “****”,Platform-A, 销量为***===
==商家标识 id: “商家名称”,Platform-B, 销量为***===
==商家标识 id: “****”,Platform-B, 销量为***===
……
==商家标识 id: “****”,Platform-B, 销量为***===
2、使用 Flask框架,结合 Echarts,完成可视化输出。要求双折线图标题为“各
23
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
平台 30 天销量最高 10 大商家”,横坐标为商家标识 id,下方为平台 A 的横坐
标,上方为平台 B 的横坐标(倾斜显示、互不遮挡),纵坐标为商家销量,以销
量降序排列,蓝色折线标识 Platform-A 商家,红色折线标识 Platform-B 商家。
将可视化结果截图(截图需包含浏览器地址栏)并粘贴至客户端桌面【Release\
模块 D提交结果.docx】中对应的任务序号下。
任务六:柱状图呈现商家营业时间情况
任务背景:
营业时长指商户开市接单到闭市停业的时长,适当地增加营业时长有利于提
升店铺的曝光量,同时能够在一定程度上获得平台排名加权。营业时间长的店铺
在特定时间段(大部分商家关店休息后)面对的竞争压力将减小,但增加营业时
间将增加商家运营店铺的人工成本,同时也需要考虑不同时间段内运力不同的情
况,例如有些区域在晚上 12 点以后无法配送。请根据相关数据集,按任务指定
要求,输出营业时间相关分析图例。
任务描述:
请根据 distribution_platform 数据表中的数据,统计平台各商家的营业时
间占比,并柱状图呈现。
具体任务要求:
1、根据相关字段,统计 4小时以内、4~6小时、6~8小时、8~12 小时、12小
时以上,5个区间段内平台各商家的营业时间占比(区间取值为前闭后开区间)。
请在 PyCharm 控制台以区间商家数量降序打印输出区间、商家数量,将输出结果
截图粘贴至客户端桌面【Release\模块 D提交结果.docx】中对应的任务序号下。
打印示例格式:
==区间“4小时以内”,商家***个===
==区间“4~6小时”,商家***个===
……
2、使用 Flask框架,结合 Echarts,完成柱状图输出。标题为“各营业区间商家
数量对比”,横坐标为营业时长各区间,纵坐标为商家个数,显示次序与第 1 小
问的打印输出语句数据一致。将可视化结果截图(截图需包含浏览器地址栏)并
24
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
粘贴至客户端桌面【Release\模块 D提交结果.docx】中对应的任务序号下。
25
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
模块 E:综合分析(15 分)
任务一:Spark 数据倾斜分析
在处理模块 C 时,我们查看 SparkUI 会发现,大部分 task 运行速度极快,
其中极小部分 task 运行速度极慢,我们称这种情况为数据倾斜,请问造成数据
倾斜的原因主要是什么?怎么定位问题出现在哪段代码呢?
将内容编写至客户端桌面【Release\模块 E 综合分析.docx】中对应的任务
序号下。
任务二:解决数据倾斜
当使用 spark产生了数据倾斜的情况时,请问有哪些方法可以解决这个问题
呢?
将内容编写至客户端桌面【Release\模块 E 综合分析.docx】中对应的任务
序号下。
任务三:参数调优和平台建议
我们使用的是 spark2.0,在处理大数据量的时候发现在聚合、连接等操作的
时候,由于数据量过大,shuffle阶段会发生溢写(原本在内存中的数据溢出到磁
盘上,导致效率变低)。自 spark1.6之后,spark 采用 Unified Memory Manager,
存储内存和计算内存可以相互借调,但是我们发现该内存模型效果不理想,于是
我们使用 LegacyMode(静态内存系统)并进行调参之后发现效率提高几倍。该系
统的堆内内存主要是有三个部分,分别是 Storage 内存区域(包含 unroll、
storage 和 reserved 三个区域),Execution 内存区域(包含 reserved 和
execution),Other 内存区域,请写出这几个内存区域占总内存的默认占比,并
写出其对应的功能?同时在模块 C中,其中一个 job的聚合连接类算子较多,但
是广播和缓存操作较少,应该将三个区域的中哪个区域内存占比增大
将内容编写至客户端桌面【Release\模块 E 综合分析.docx】中对应的任务
序号下。
26
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
附录:补充说明
控制台截图样例(保证清晰)
所有数据集(包含模块 C、模块 D)中涉及的主要字段及中文
说明:
POI:point of interest(兴趣点)
原字段 中文释义
restaurant_inside_id 商家标识 id
city_name 城市
location 商圈
latitude 纬度
longitude 经度
rest_type 商家所属平台
platform_A_restid 商家 id(A平台)
A_rst_name 商家名称(A平台)
A_day_30_cnt 30 天销量(A平台)
platform_B_restid 商家 id(B平台)
B_rst_name 商家名称(B平台)
B_day_30_cnt 30 天销量(B平台)
推单数 9 推单数(9日)
有效完成率 9 有效完成率(9日)
超时率 9 超时率(9日)
推单数 8 推单数(8日)
27
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
有效完成率 8 有效完成率(8日)
超时率 8 超时率(8日)
灰度餐厅 灰度餐厅
id 标识 id
walle_id (平台)商铺 id
retailer_id (配送系统)商铺 id
retailer_name 商铺名称
retailer_address 商铺地址
retailer_location 位置 POI编码
city_id 城市 id
grid_id 网格 id
carrier_id 渠道经理
team_id 渠道小组
applicant_id 申请人 id
applicant_name 申请人
first_auditor_role 一级审批角色
first_auditor_candidate_ids 候选审批人 id
first_auditor_id 审核人 id
first_auditor_name 审批人名
second_auditor_role 二级审批角色
second_auditor_candidate_ids 审核小组成员
second_auditor_id 二级审核人 id
second_auditor_name 二级审核人名
status 审核状态(0:拒绝,1:通过)
max_distance_before_edit 申请前最大配送距离
min_distance_before_edit 申请前最小配送距离
max_distance_after_edit 申请后最大配送距离
min_distance_after_edit 申请后最小配送距离
area_before_edit 申请前配送面积
area_after_edit 申请后配送面积
created_at 申请递交时间
updated_at 审核完成
申请时间 申请时间
创建时间 创建时间
餐厅名称 餐厅名称
所属城市 所属城市
营业时长 营业时长
餐厅状态 餐厅状态
是否托管 是否托管
总单量 总单量
总单量增长率 总单量增长率
有效订单量 有效订单量
有效订单增长率 有效订单增长率
28
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
订单配送成功率 订单配送成功率
超时订单率 超时订单率
无效订单率 无效订单率
平均预计送达时长 平均预计送达时长
平均实际配送时长 平均实际配送时长
当前配送面积 当前配送面积
面积变更值 面积变更值
网格名称 网格名称
战营 战营
城市 城市
商户业务包 商户业务包
配送范围 配送范围
客单价 客单价
推单数 推单数
接单数 接单数
有效完成单数 有效完成单数
投诉率 投诉率
异常率 异常率
欺诈单数 欺诈单数
拒单数 拒单数
商户取消数 商户取消数
客户取消数 客户取消数
系统取消数 系统取消数
配送取消异常数 配送取消异常数
整体时长 整体时长
接单时长 接单时长
到店时长 到店时长
取餐时长 取餐时长
送达时长 送达时长
商户投诉数 商户投诉数
用户投诉数 用户投诉数
差评数 差评数
好评数 好评数
评价数 评价数
最远订单距离 最远订单距离
该订单整体时效 该订单整体时效
该订单接单时效 该订单接单时效
该订单到店时效 该订单到店时效
该订单取餐时效 该订单取餐时效
该订单送达时效 该订单送达时效
该订单评价 该订单评价
网格 ID 网格 ID
网格名称 网格名称
29
2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书
城市 城市
战团 战团
餐厅 ID 餐厅 ID
近 7天平台单量 近 7天平台单量
近 7天推单 近 7天推单
餐厅名 餐厅名
餐厅地址(取餐地址) 餐厅地址(取餐地址)
餐品种类 餐品种类
标品属性 标品属性
全推选推 全推选推
30第5套赛卷评分标准
模块 任务 主要知识与技能点 分值
任务一:Hadoop Hadoop完全分布式下的 JDK的解压安装、J
完全分布式部署 DK环境变量配置、节点配置、Hadoop配置 7
管理 文件修改
模块A:大数任务二:Spark组Scala的解压安装、Scala的环境变量配置、S
据平台及组件部署管理(Standpark的解压安装、spark-env.sh文件配置、Sp 4
件的部署管 alone模式) ark启动状态

Hive Hive的解压安装、Hive的环境变量配置、hi任务三: 组 ve-site.xml文件配置、初始化 Hive元数据、H 4
件部署管理 ive的启动状态
小计 15
任务一:爬取“配
通过编写爬虫程序分页爬取,使用 re解析分
送平台”页面相关 2
页链接
数据
任务二:爬取“店
” 通过编写爬虫程序分页爬取,使用 re解析分铺运营数据 页面 2
页链接
相关数据
任务三:将数据存将爬取到的数据存入指定的 json文件中并在
模块B:数据
入 json 3文件 控制台打印输出采集到的记录行数
采集与处理
任务四:删除异常能够针对属性列“客户取消数”小于“商户取消 3
样本 数”的异常样本进行数据删除
任务五:缺失值处能够针对“到店时长”属性审查缺失值的数量 6
理 并进行相应的后续数据处理
任务六:划分数据能够针对采集到的店铺运营数据集根据属性
集 “ 4超时率(9日)”进行数据集划分
小计 20
对从餐饮外送统计平台获取到的数据进行重
复样本记录删除、缺失值删除、数据排序、
任务一:数据清洗 11
模块C:数据 字典排序、跳跃排序等数据处理实现数据清
清洗与挖掘 洗,并显示数据清洗后的结果
分析 任务二:数据挖掘通过编写程序和算法,对数据清洗后的数据 14
分析 集进行排序、聚类等操作实现数据挖掘分析
小计 25
任务一:双饼图呈
正确使用 Flask框架,结合 Echarts绘制双饼
现城市商户业务 3

模块 D:数 包占比
据可视化 任务二:柱状堆叠
正确使用 Flask框架,结合 Echarts绘制柱状
图呈现商户业务 3
堆叠图
包评价情况
任务三:玫瑰饼图
正确使用 Flask框架,结合 Echarts绘制玫瑰
呈现不同商户业 4
饼图
务包投诉占比
任务四:气泡图呈
正确使用 Flask框架,结合 Echarts绘制气泡
现商家分布的地 4

理位置
任务五:双折线图
正确使用 Flask框架,结合 Echarts绘制双折
呈现不同平台商 3
线图
家销量情况
任务六:柱状图呈
正确使用 Flask框架,结合 Echarts绘制柱状
现商家营业时间 3

情况
小计 20
任务一:Spark数分析造成数据倾斜的原因,如何定位问题出 5
据倾斜分析 现的代码位置
任务二:解决数据
模块 E:综合 分析有哪些方法可以解决数据倾斜 5
倾斜
分析
任务三:参数调优基于 Spark的 LegacyMode的堆内内存的内存 5
和平台建议 区域分析
小计 15
竞赛团队分工明确合理、操作规范、文明竞
模块 F:职业 考察职业素养 5

素养
小计 5
总分 100

展开更多......

收起↑

资源列表