资源简介 2021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书2021年全国职业院校技能大赛高职组“大数据技术与应用”赛项赛卷(GZ-2021041-5卷)任务书(共 30页)参赛队编号:12021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书背景描述据央视财经报道,2020 年我国 O2O 市场规模突破万亿元,O2O 市场存在着巨大的潜力。特别是餐饮和外卖行业,占据市场较大份额,并且业务增长迅速。截至 2020 年底,全国外卖总体订单量已超过171.2亿单,同比增长 7.5%,全国外卖市场交易规模达到 8352亿元,同比增长 14.8%。我国外卖用户规模已接近 5 亿人,其中 80 后、90后是餐饮外卖服务的中坚消费力量,消费者使用餐饮外卖服务也不再局限于传统的一日三餐,下午茶和夜宵逐渐成为消费者的外卖新宠。为把握这一商业机遇,ChinaSkills公司计划进驻外卖平台市场,现需对大规模成熟外卖平台进行详细评估调研,采集多方多维度数据,寻找行业痛点,摸清市场需求,以技术为手段为投资保驾护航。为完成该项工作,你所在的小组将应用大数据技术,以 Python、Java、Scala作为整个项目的基础开发语言,基于大数据平台综合利用 Spark、MySQL、Scrapy、Flask、ECharts 等,对数据进行获取、处理、清洗、挖掘、分析、可视化呈现,力求实现对公司未来的重点战略方向提出建议。你们作为该小组的技术人员,请按照下面任务完成本次工作,并编制综合报告。22021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书模块 A:大数据平台及组件的部署管理(15 分)环境说明:编号 节点类型 节点 IP地址 用户名 密码1 Master 192.168.5.188 root 1234562 Slave1 192.168.5.182 root 1234563 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 节点,将全部复制命令复制并粘贴至客户端桌面32021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书【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】中对应的任务序号下;42021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书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】中对应的任务序号下;52021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书6、初始化 Hive元数据,将 MySQL数据库 JDBC 驱动拷贝到 Hive安装目录的 lib文件夹下;并通过 schematool相关命令执行初始化,将初始化结果复制粘贴至客户端桌面【Release\模块 A提交结果.docx】中对应的任务序号下;7、完善其他配置并启动 Hive,将命令行输出结果复制粘贴至客户端桌面【Release\模块 A提交结果.docx】中对应的任务序号下。62021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书模块 B:数据采集与处理 (20 分)项目背景说明1、查看餐饮外送统计平台网站源码结构。1)网 站 前 台 : 192.168.5.179:8080 , 网 站 后 台 :192.168.5.179:8090;2)打开网站,在网页中右键点击检查,或者 F12快捷键,查看源码页面;3)检查网站:浏览网站源码查看所需内容。2、从餐饮外送统计平台中采集需要数据,按照要求使用 Python语言编写代码工程,获取指定数据项,并对结果数据集进行必要的数据处理。请将符合任务要求的结果复制粘贴至对应报告中。具体步骤如下:1)创建工程项目:C:\food_delivery_crawl2)构建采集请求3)按要求定义相关字段4)获取有效数据5)将获取到的数据保存到指定位置6)对数据集进行基础的数据处理至此已从餐饮外送统计平台中获取所需数据,并完成了必要的基础的数据处理。3、自行创建 Scrapy 工程项目 food_delivery_crawl,路径为 C:\food_delivery_crawl,按照任务要求从餐饮外送统计平台中获取72021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书数据。4、每条数据记录请以单独一行保存,信息存储格式为 key:value。数据文件保存路径为:C:\crawl_output。示例:[{"key1": "***", "key2": "***",……},{"key1": "***", " key2": "***",……},……{"key1": "***", " key2": "***",……}]任务一:爬取“配送平台”页面相关数据自行创建 Scrapy 工程,编写工程代码,爬取“配送平台”页面相关数据,通过工程代码分页爬取,将使用 re 解析分页链接的程序源代码(正则表达式需能体现url的构造规律)复制粘贴至客户端桌面【Release\模块B提交结果.docx】中对应的任务序号下。任务二:爬取“店铺运营数据”页面相关数据编写工程代码,爬取“店铺运营数据”页面相关数据,通过工程代码分页爬取,将使用 re 解析分页链接的程序源代码(正则表达式需能体现 url 的构造规律)复制粘贴至客户端桌面【Release\模块 B 提交结果.docx】中对应的任务序号下。82021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书任务三:将数据存入 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%,删除样本条数为***条===或:92021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书===“到店时长”属性缺失值比例大于等于 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包含样本条数为***条===102021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书模块 C:数据清洗与挖掘分析(25 分)环境说明:编号 节点类型 节点 IP地址 用户名 密码1 Master 192.168.5.184 root passwd2 Slave1 192.168.5.189 root passwd3 Slave2 192.168.5.185 root passwd补充说明:各节点可通过客户端 XShell工具进行 SSH访问,并且已安装好大数据集群;Master节点 MySQL数据库用户名/密码:root/Password123$ ;清洗数据源在 Master节点的/chinaskills目录下;所有模块中应用命令必须采用绝对路径。项目背景说明餐饮外卖平台的核心价值体现在配送,而配送的价值则依赖于商家与客户的双向选择。外卖平台通常会通过内容激活消费者和商家两个群体的活跃度。消费者会参考平台展示的内容选择商家,商家也会以消费者评价与平台统计数据为依据调整策略,由此再吸引更多的用户下单、评论、形成正向循环。保证配送的时效与品质是从优化用户体验的角度,吸引更多的用户参与,进而带动商家不断入驻。由此,商家、消费者、骑手在平台上形成越来越多的真实可靠的数据,帮助消费者更好的做出消费决策,同时促进商家提高服务质量。而平台通过数据,不断调整优化服务,从而不断提升这种多边网络效应。提升112021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书网络效应的直接结果就是用户和商家规模大幅提升,进而形成规模效应——降低获客成本、提高效益,并且不断提升自己的行业壁垒。为探索各大外卖平台的市场策略与经营模式,现已从及平台获取到了原始数据集,包含“餐厅 ID,城市,商户业务包,配送范围”等多项字段。为保障用户隐私和行业敏感信息,已经对数据脱敏(数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护,在涉及客户安全数据或一些商业性敏感数据的情况下,对真实数据进行改造并提供测试使用,如身份证号、手机号等个人敏感信息都需要进行数据脱敏)。本模块已将脱敏后的数据存放于 Master 节点的/chinaskills 目录下。工程所需配置文件 pom.xml存放于客户端“桌面\Resource\数据清洗与挖掘分析配置文件”下。任务中所有命令务必使用绝对路径。任务一:数据清洗子任务 1任务背景:数据源为众多网站及平台的数据汇总,且为多次采集的结果,在整合多来源数据时可能遇到数据重复,或数据拼接导致的属性列缺失或冗余等情况。请根据任务具体参数要求,针对原始数据集进行清洗,并写入指定的数据库或数据文件,复制并保存结果。任务描述:数据源文件存放于 Master节点的/chinaskills 目录下,请按照如下要求编写 Scala 程序对数据进行清洗,并将结果输出保存。1) 分析/chinaskills 中 json数据文件;2) 编写程序针对数据进行相应的分析及处理;122021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书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个的字段的数据条数为***条”===132021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书4、将任务要求 3处理后的数据记录以[latitude,longitude,A_day_30_cnt]依次降序排列,并将结果数据集 json 文件输出至 HDFS 文件系统/diliveryoutput2目录下(将分区数设置为 1)。在 XShell命令行中使用 Hadoop Shell 相关命令直接查看结果数据文件前 5条记录。将查看命令及查看结果复制并粘贴至客户端桌面【Release\模块 C 提交结果.docx】中对应的任务序号下。子任务 21、编写 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北京 喜乐多 异常 3852、 编写 Scala程序,基于/diliveryoutput8 目录下的数据,在同一城市中,按142021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书照 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,5city_name 城市名称A_rst_name 餐厅名称status 餐厅状态 例如:正常/异常order 订单数seq 组内排序序列 例如:1,1,3,3,5任务二:数据挖掘分析子任务 1任务背景:网格化营销是近年来新兴的一种营销管理模式,已被广泛地运用于市场精准营销。在市场营销中,采取地图营销、网格管理、精准策略等,可将客户的心理需求与其日常生活紧密地联系起来,巧妙运用网格化管理和营销地图,以此来实现客户的营销精准度与价值提升,提高单一客户贡献值和营销效率。其核心旨在帮助企业快速响应市场需求,为用户提供更加便捷的、专业化服务,并使企业的资源分配以客户为中心,以市场变化为导向,固本强基、开拓市场、提升效益,有助于平台有效地制定绩效战略。请根据任务具体参数要求,针对相关数据集进行分析,并写入指定的数据库或数据文件,复制并保存结果。任务描述:数据源文件为数据清洗子任务 1 的结果数据( HDFS 文件系统/diliveryoutput2目录下的数据),按照如下要求编写 Scala程序实现对数据的152021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书挖掘分析。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 中的数据。选择数据分析的维度通常分为用户维度、行为维度和产品维度,想要对外卖平台入驻商家进行聚类划分,有侧重地分类评估商家对平台的价值,首先需要针对商家数据选择核心数据集,为确保聚类模型收敛速162021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书度与质量,以及消除量纲对聚类结果的影响,首先应对数据进行归一化或标准化处理,再进行数据建模。任务描述:请以数据清洗子任务 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: 聚类中心为[**,**],商家数为***个,包含商圈:【*,*,…】=172021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书……3、请使用任务要求 1的结果数据集/diliveryoutput4 中的数据,结合任务要求2的结论,编写 Scala 程序,分别统计各聚类中在平台 A与平台 B上架的商家数量,以及同时上架两个平台的商家数量。在 XShell 命令行中以打印语句输出结果,并将打印输出结果复制并粘贴至客户端桌面【Release\模块 C提交结果.docx】中对应的任务序号下。打印示例格式:=cluster 0:【*,*,…】,A平台商家数量:**,B平台商家数量:**,同时上架 A、B平台的商家数量:**==cluster 1:【*,*,…】,A平台商家数量:**,B平台商家数量:**,同时上架 A、B平台的商家数量:**=……182021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书模块 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 高校192021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书FML 家庭OTH 其他表 1 商户业务包中文释义具体任务要求:1、根据相关数据表中的字段,分析北京与广州两座城市在商户业务包属性占比方面的差异。在 PyCharm 控制台打印输出两座城市不同商户业务包属性的商家数量,以商家数量降序排列,将输出结果截图粘贴至客户端桌面【Release\模块 D提交结果.docx】中对应的任务序号下。打印示例格式:==北京:1.商户业务包:***, 商家数量:***家=====北京:2.商户业务包:***, 商家数量:***家===……==广州:1.商户业务包:***, 商家数量:***家=====广州:2.商户业务包:***, 商家数量:***家===……2、使用 Flask框架,结合 Echarts,完成双饼图输出。要求标题分别为“北京商户业务包属性占比”(左)、“广州商户业务包属性占比”(右),顺时针显示次序与第 1小问的打印输出语句数据一致,将可视化结果截图(截图需包含浏览器地址栏)并粘贴至客户端桌面【Release\模块 D 提交结果.docx】中对应的任务序号下。任务二:柱状堆叠图呈现商户业务包评价情况任务背景:在外卖平台中,用户的评论具有双向影响。不仅可以促进商家根据消费者评价调整自己的经营策略,也能够影响其他用户的下单率。相关数据显示,浏览评价的用户比只浏览门店商品的用户下单转化率平均高出 25%。因此,商家的店铺评论对提高下单率是十分重要的。请根据相关数据集,按任务指定要求,统计并输出评价相关的分析图例。任务描述:请根据 distribution_platform 数据表中的数据,统计各商户业务包评价情况,并柱状堆叠图呈现。程序输出及可视化输出时请使用商户业务包中文释义。202021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书具体任务要求: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】中对应的任务序号下。212021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书打印示例格式:==商户业务包:***, 投诉数量:***家=====商户业务包:***, 投诉数量:***家===……2、使用 Flask框架,结合 Echarts,完成玫瑰图输出。要求标题为“北京商户业务包投诉占比”,顺时针显示次序与第 1 小问的打印输出语句数据一致,将可视化结果截图(截图需包含浏览器地址栏)并粘贴至客户端桌面【Release\模块 D提交结果.docx】中对应的任务序号下。任务四:气泡图呈现商家分布的地理位置任务背景:商圈,指某商场以其所在地为原点,沿着一定的方向和距离扩展,吸引顾客的辐射范围。简单地说,就是来店顾客所居住或工作的区域范围。无论餐厅规模大小,其销售覆盖区域总是有一定的地理范围。这个地理范围就是以某商场为中心,向四周辐射到可能来店消费的顾客所居住地或工作地。请按任务指定要求,输出相关图例。任务描述:请根据 store_basic_informations 数据表中相关字段,明晰商圈与商铺聚集程度之间的关系。请以经度为横坐标,纬度为纵坐标,绘制商家数量气泡图,并以该地理位置的商家数量/10作为气泡半径。具体任务要求:1、提取数据表中相关字段,在控制台按照“商家数量”降序排列,打印输出前10个商圈名称及包含的商家数量,将输出结果截图粘贴至客户端桌面【Release\模块 D提交结果.docx】中对应的任务序号下。打印示例格式:==1: 商圈 ****=商家数为***个=====2: 商圈 ****=商家数为***个===……2、使用 Flask框架,结合 Echarts,完成气泡图输出。要求气泡图标题为“商家聚集地理位置展示”,横坐标为经度,纵坐标为纬度,以该商圈的商家数量/10作为气泡半径,绘制气泡图(含全部商圈数据)。将可视化结果截图(截图需包含222021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书浏览器地址栏)并粘贴至客户端桌面【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,完成可视化输出。要求双折线图标题为“各232021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书平台 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 小问的打印输出语句数据一致。将可视化结果截图(截图需包含浏览器地址栏)并242021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书粘贴至客户端桌面【Release\模块 D提交结果.docx】中对应的任务序号下。252021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书模块 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】中对应的任务序号下。262021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书附录:补充说明控制台截图样例(保证清晰)所有数据集(包含模块 C、模块 D)中涉及的主要字段及中文说明:POI:point of interest(兴趣点)原字段 中文释义restaurant_inside_id 商家标识 idcity_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日)272021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书有效完成率 8 有效完成率(8日)超时率 8 超时率(8日)灰度餐厅 灰度餐厅id 标识 idwalle_id (平台)商铺 idretailer_id (配送系统)商铺 idretailer_name 商铺名称retailer_address 商铺地址retailer_location 位置 POI编码city_id 城市 idgrid_id 网格 idcarrier_id 渠道经理team_id 渠道小组applicant_id 申请人 idapplicant_name 申请人first_auditor_role 一级审批角色first_auditor_candidate_ids 候选审批人 idfirst_auditor_id 审核人 idfirst_auditor_name 审批人名second_auditor_role 二级审批角色second_auditor_candidate_ids 审核小组成员second_auditor_id 二级审核人 idsecond_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 审核完成申请时间 申请时间创建时间 创建时间餐厅名称 餐厅名称所属城市 所属城市营业时长 营业时长餐厅状态 餐厅状态是否托管 是否托管总单量 总单量总单量增长率 总单量增长率有效订单量 有效订单量有效订单增长率 有效订单增长率282021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书订单配送成功率 订单配送成功率超时订单率 超时订单率无效订单率 无效订单率平均预计送达时长 平均预计送达时长平均实际配送时长 平均实际配送时长当前配送面积 当前配送面积面积变更值 面积变更值网格名称 网格名称战营 战营城市 城市商户业务包 商户业务包配送范围 配送范围客单价 客单价推单数 推单数接单数 接单数有效完成单数 有效完成单数投诉率 投诉率异常率 异常率欺诈单数 欺诈单数拒单数 拒单数商户取消数 商户取消数客户取消数 客户取消数系统取消数 系统取消数配送取消异常数 配送取消异常数整体时长 整体时长接单时长 接单时长到店时长 到店时长取餐时长 取餐时长送达时长 送达时长商户投诉数 商户投诉数用户投诉数 用户投诉数差评数 差评数好评数 好评数评价数 评价数最远订单距离 最远订单距离该订单整体时效 该订单整体时效该订单接单时效 该订单接单时效该订单到店时效 该订单到店时效该订单取餐时效 该订单取餐时效该订单送达时效 该订单送达时效该订单评价 该订单评价网格 ID 网格 ID网格名称 网格名称292021 年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书城市 城市战团 战团餐厅 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 展开更多...... 收起↑ 资源列表 2021年全国职业院校技能大赛高职组“大数据技术与应用”赛项任务书.pdf 2021年全国职业院校技能大赛高职组“大数据技术与应用”赛项第5套赛卷评分标准.pdf