GZ033 大数据应用开发赛项正式赛卷及评分标准(高职组[含素材]).rar

收藏

跳过导航链接。
折叠 GZ033大数据应用开发赛项正式赛卷及评分标准高职组含素材.rarGZ033大数据应用开发赛项正式赛卷及评分标准高职组含素材.rar
展开 GZ033 大数据应用开发赛项赛题与评分标准_发程杰_20231030GZ033 大数据应用开发赛项赛题与评分标准_发程杰_20231030
压缩包目录 预览区
  • GZ033 大数据应用开发赛项赛题与评分标准_发程杰_20231030
    • GZ033 大数据应用开发赛项正式赛卷.docx--点击预览
    • GZ033 大数据应用开发赛项评分标准.docx--点击预览
请点击导航文件预览
编号:97673109    类型:共享资源    大小:69.28KB    格式:RAR    上传时间:2024-06-23
20.8
金币
关 键 词:
含素材 GZ033 大数据应用开发赛项正式赛卷及评分标准(高职组[含素材]) 数据 应用 利用 运用 开发 正式 评分标准 高职 素材
资源描述:
12023 年全国职业院校技能大赛2023 年全国职业院校技能大赛赛题第 02 套赛题第 02 套赛项名称:大数据应用开发 赛项名称:大数据应用开发 英文名称:英文名称:Big Data Application Development 赛项组别:高等职业教育组 赛项组别:高等职业教育组 赛项编号:GZ033 赛项编号:GZ033 2背景描述背景描述大数据时代背景下,电商经营模式发生很大改变。在传统运营模式中,缺乏数据积累,人们在做出一些决策行为过程中,更多是凭借个人经验和直觉,发展路径比较自我封闭。而大数据时代,为人们提供一种全新的思路,通过大量的数据分析得出的结果将更加现实和准确。商家可以对客户的消费行为信息数据进行收集和整理,比如消费者购买产品的花费、选择产品的渠道、偏好产品的类型、产品回购周期、购买产品的目的、消费者家庭背景、工作和生活环境、个人消费观和价值观等。通过数据追踪,知道顾客从哪儿来,是看了某网站投放的广告还是通过朋友推荐链接,是新访客还是老用户,喜欢浏览什么产品,购物车有无商品,是否清空,还有每一笔交易记录,精准锁定一定年龄、收入、对产品有兴趣的顾客,对顾客进行分组、标签化,通过不同标签组合运用,获得不同目标群体,以此开展精准推送。因数据驱动的零售新时代已经到来,没有大数据,我们无法为消费者提供这些体验,为完成电商的大数据分析工作,你所在的小组将应用大数据技术,以 Scala 作为整个项目的基础开发语言,基于大数据平台综合利用 Hudi、Spark、Flink、Vue.js 等技术,对数据进行处理、分析及可视化呈现,你们作为该小组的技术人员,请按照下面任务完成本次工作。3任务 A:大数据平台搭建(容器环境)(15 分)任务 A:大数据平台搭建(容器环境)(15 分)环境说明:环境说明:服务端登录地址详见各任务服务端说明。服务端登录地址详见各任务服务端说明。补充说明:补充说明:宿主机可通过 Asbru 工具或 SSH 客户端进行 SSH 访问;相关软件安装包在宿主机的/opt 目录下,请选择对应的安装包进行安装,用不到的可忽略;所有任务中应用命令必须采用绝对路径;进入 Master 节点的方式为docker exec-it master/bin/bash进入 Slave1 节点的方式为docker exec-it slave1/bin/bash进入 Slave2 节点的方式为docker exec-it slave2/bin/bash三个容器节点的 root 密码均为 123456子任务一:Hadoop 完全分布式安装配置本任务需要使用 root 用户完成相关配置,安装 Hadoop 需要配置前置环境。命令中要求使用绝对路径,具体要求如下:1、从宿主机/opt目录下将文件hadoop-3.1.3.tar.gz、jdk-8u212-linux-x64.tar.gz 复制到容器 Master 中的/opt/software 路径中(若路径不存在,则需新建),将Master节点JDK安装包解压到/opt/module路径中(若路径不存在,则需新建),将 JDK 解压命令复制并粘贴至客户端桌面【Release任务 A 提交结果.docx】中对应的任务序号下;2、修改容器中/etc/profile 文件,设置 JDK 环境变量并使其生效,配置完毕后4在 Master 节点分别执行“java-version”和“javac”命令,将命令行执行结果分别截图并粘贴至客户端桌面【Release任务 A 提交结果.docx】中对应的任务序号下;3、请完成 host 相关配置,将三个节点分别命名为 master、slave1、slave2,并做免密登录,用 scp 命令并使用绝对路径从 Master 复制 JDK 解压后的安装文件到 slave1、slave2 节点(若路径不存在,则需新建),并配置slave1、slave2 相关环境变量,将全部 scp 复制 JDK 的命令复制并粘贴至客户端桌面【Release任务 A 提交结果.docx】中对应的任务序号下;4、在 Master 将 Hadoop 解压到/opt/module(若路径不存在,则需新建)目录下,并将解压包分发至 slave1、slave2 中,其中 master、slave1、slave2 节点均作为 datanode,配置好相关环境,初始化 Hadoop 环境 namenode,将初始化命令及初始化结果截图(截取初始化结果日志最后 20 行即可)粘贴至客户端桌面【Release任务 A 提交结果.docx】中对应的任务序号下;5、启动 Hadoop 集群(包括 hdfs 和 yarn),使用 jps 命令查看 Master 节点与slave1 节点的 Java 进程,将 jps 命令与结果截图粘贴至客户端桌面【Release任务 A 提交结果.docx】中对应的任务序号下。子任务二:Flume 安装配置本任务需要使用 root 用户完成相关配置,已安装 Hadoop 及需要配置前置环境,具体要求如下:1、从宿主机/opt 目录下将文件 apache-flume-1.9.0-bin.tar.gz 复制到容器Master 中的/opt/software 路径中(若路径不存在,则需新建),将 Master节点 Flume 安装包解压到/opt/module 目录下,将解压命令复制并粘贴至客户端桌面【Release任务 A 提交结果.docx】中对应的任务序号下;2、完善相关配置,设置 Flume 环境变量,并使环境变量生效,执行命令 flume-ng version 并将命令与结果截图粘贴至客户端桌面【Release任务 A 提交结果.docx】中对应的任务序号下;3、启动 Flume 传输 Hadoop 日志(namenode 或 datanode 日志),查看 HDFS 中/tmp/flume 目录下生成的内容,将查看命令及结果(至少 5 条结果)截图粘5贴至客户端桌面【Release任务 A 提交结果.docx】中对应的任务序号下。子任务三:Flink on Yarn 安装配置本任务需要使用 root 用户完成相关配置,已安装 Hadoop 及需要配置前置环境,具体要求如下:1、从宿主机/opt目录下将文件flink-1.14.0-bin-scala_2.12.tgz复制到容器Master 中的/opt/software(若路径不存在,则需新建)中,将 Flink 包解压到路径/opt/module 中(若路径不存在,则需新建),将完整解压命令复制粘贴至客户端桌面【Release任务 A 提交结果.docx】中对应的任务序号下;2、修改容器中/etc/profile 文件,设置 Flink 环境变量并使环境变量生效。在容器中/opt 目录下运行命令 flink-version,将命令与结果截图粘贴至客户端桌面【Release任务 A 提交结果.docx】中对应的任务序号下;3、开启 Hadoop 集群,在 yarn 上以 per job 模式(即 Job 分离模式,不采用Session 模式)运行$FLINK_HOME/examples/batch/WordCount.jar,将运行结果最后 10 行截图粘贴至客户端桌面【Release任务 A 提交结果.docx】中对应的任务序号下。示例:flink run-m yarn-cluster-p 2-yjm 2G-ytm 2G$FLINK_HOME/examples/batch/WordCount.jar6任务 B:离线数据处理(25 分)任务 B:离线数据处理(25 分)环境说明:环境说明:服务端登录地址详见各任务服务端说明。服务端登录地址详见各任务服务端说明。补充说明:补充说明:各节点可通过 Asbru 工具或 SSH 客户端进行 SSH 访问;主节点 MySQL 数据库用户名/密码:root/123456(已配置远程连接);Spark 任务在 Yarn 上用 Client 运行,方便观察日志。若 Hudi 中无数据,正常抽取提示:在本卷中所示的 ods、dwd 层均为 hudi 中 ods_ds_hudi、dwd_ds_hudi,不操作 Hive 中的数据子任务一:数据抽取编写 Scala 代码,使用 Spark 将 MySQL 的 shtd_store 库中表 user_info、sku_info、base_province、base_region、order_info、order_detail 的数据增量抽取到HudiHudi的ods_ds_hudi库(路径为/user/hive/warehouse/ods_ds_hudi.db)的user_info、sku_info、base_province、base_region、order_info、order_detail 中。(若 ods_ds_hudi库中部分表没有数据,正常抽取即可)1、抽取 shtd_store 库中 user_info 的增量数据进入 Hudi 的 ods_ds_hudi 库中表 user_info。根 据 ods_ds_hudi.user_info 表 中 operate_time 或create_time作为增量字段(即MySQL中每条数据取这两个时间中较大的那个时间作为增量字段去和 ods_ds_hudi 里的这两个字段中较大的时间进行比较),只将新增的数据抽入,字段名称、类型不变,同时添加分区,若operate_time 为空,则用 create_time 填充,分区字段为 etl_date,类型为 String,且值为当前比赛日的前一天日期(分区字段格式为 yyyyMMdd)。7id作为primaryKey,operate_time作为preCombineField。使用spark-shell执行 show partitions ods_ds_hudi.user_info 命令,将结果截图粘贴至客户端桌面【Release任务 B 提交结果.docx】中对应的任务序号下;2、抽取 shtd_store 库中 sku_info 的增量数据进入 Hudi 的 ods_ds_hudi 库中表 sku_info。根据 ods_ds_hudi.sku_info 表中 create_time 作为增量字段,只将新增的数据抽入,字段名称、类型不变,同时添加分区,分区字段为etl_date,类型为 String,且值为当前比赛日的前一天日期(分区字段格式为 yyyyMMdd)。id 作为 primaryKey,create_time 作为 preCombineField。使用 spark-shell 执行 show partitions ods_ds_hudi.sku_info 命令,将结果截图粘贴至客户端桌面【Release任务 B 提交结果.docx】中对应的任务序号下;3、抽取 shtd_store 库中 base_province 的增量数据进入 Hudi 的 ods_ds_hudi库中表 base_province。根据 ods_ds_hudi.base_province 表中 id 作为增量字段,只将新增的数据抽入,字段名称、类型不变并添加字段 create_time取当前时间,同时添加分区,分区字段为 etl_date,类型为 String,且值为当前比赛日的前一天日期(分区字段格式为 yyyyMMdd)。id 作为primaryKey,create_time 作为 preCombineField。使用 spark-shell 执行show partitions ods_ds_hudi.base_province 命令,将结果截图粘贴至客户端桌面【Release任务 B 提交结果.docx】中对应的任务序号下;4、抽取 shtd_store 库中 base_region 的增量数据进入 Hudi 的 ods_ds_hudi 库中表 base_region。根据 ods_ds_hudi.base_region 表中 id 作为增量字段,只将新增的数据抽入,字段名称、类型不变并添加字段 create_time 取当前时间,同时添加分区,分区字段为 etl_date,类型为 String,且值为当前比赛日的前一天日期(分区字段格式为 yyyyMMdd)。id 作为 primaryKey,create_time 作 为 preCombineField。使 用 spark-shell 执 行 show partitions ods_ds_hudi.base_region 命令,将结果截图粘贴至客户端桌面8【Release任务 B 提交结果.docx】中对应的任务序号下;5、抽取 shtd_store 库中 order_info 的增量数据进入 Hudi 的 ods_ds_hudi 库中表 order_info,根据 ods_ds_hudi.order_info 表中 operate_time 或create_time作为增量字段(即MySQL中每条数据取这两个时间中较大的那个时间作为增量字段去和 ods_ds_hudi 里的这两个字段中较大的时间进行比较),只将新增的数据抽入,字段名称、类型不变,同时添加分区,分区字段为 etl_date,类型为 String,且值为当前比赛日的前一天日期(分区字段 格 式 为 yyyyMMdd)。id 作 为 primaryKey,operate_time 作 为preCombineField。使用spark-shell执行show partitions ods_ds_hudi.order_info 命令,将结果截图粘贴至客户端桌面【Release任务 B 提交结果.docx】中对应的任务序号下;6、抽取 shtd_store 库中 order_detail 的增量数据进入 Hudi 的 ods_ds_hudi库中表 order_detail,根据 ods_ds_hudi.order_detail 表中 create_time作为增量字段,只将新增的数据抽入,字段名称、类型不变,同时添加分区,分区字段为 etl_date,类型为 String,且值为当前比赛日的前一天日期(分区字段格式为 yyyyMMdd)。id 作为 primaryKey,create_time 作为preCombineField。使用spark-shell执行show partitions ods_ds_hudi.order_detail 命令,将结果截图粘贴至客户端桌面【Release任务 B 提交结果.docx】中对应的任务序号下。子任务二:数据清洗编写 Scala 代码,使用 Spark 将 ods_ds_hudi 库中相应表数据全量抽取到HudiHudi的dwd_ds_hudi库(路径为路径为/user/hive/warehouse/dwd_ds_hudi.db)中对应表中。表中有涉及到 timestamp类型的,均要求按照 yyyy-MM-dd HH:mm:ss,不记录毫秒数,若原数据中只有年月日,则在时分秒的位置添加 00:00:00,添加之后使其符合 yyyy-MM-dd HH:mm:ss。(若 dwd_ds_hudi 库中部分表没有数据,正常抽取即可)91、抽取 ods_ds_hudi 库中 user_info 表中昨天的分区(子任务一生成的分区)数据,并结合 dim_user_info 最新分区现有的数据,根据 id 合并数据到dwd_ds_hudi 库中 dim_user_info 的分区表(合并是指对 dwd_ds_hudi 层数据进行插入或修改,需修改的数据以 id 为合并字段,根据 operate_time 排序取最新的一条),分区字段为 etl_date 且值与 ods_ds_hudi 库的相对应表 该 值 相 等,并 添 加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time 四 列,其 中 dwd_insert_user、dwd_modify_user均填写“user1”。若该条记录第一次进入数仓dwd_ds_hudi层则 dwd_insert_time、dwd_modify_time 均存当前操作时间,并进行数据类型转换。若该数据在进入 dwd_ds_hudi 层时发生了合并修改,则dwd_insert_time 时间不变,dwd_modify_time 存当前操作时间,其余列存最新的值。id 作为 primaryKey,operate_time 作为 preCombineField。使用 spark-shell 执行 show partitions dwd_ds_hudi.dim_user_info 命令,将结果截图粘贴至客户端桌面【Release任务 B 提交结果.docx】中对应的任务序号下;2、抽取 ods_ds_hudi 库 sku_info 表中昨天的分区(子任务一生成的分区)数据,并结合 dim_sku_info 最新分区现有的数据,根据 id 合并数据到dwd_ds_hudi 库中 dim_sku_info 的分区表(合并是指对 dwd_ds_hudi 层数据进行插入或修改,需修改的数据以 id 为合并字段,根据 create_time 排序取最新的一条),分区字段为 etl_date 且值与 ods_ds_hudi 库的相对应表该值相等,并添加 dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time 四列,其中 dwd_insert_user、dwd_modify_user 均填写“user1”。若该条数据第一次进入数仓dwd_ds_hudi层则dwd_insert_time、dwd_modify_time 均填写当前操作时间,并进行数据类型转换。若该数据在进入 dwd_ds_hudi 层时发生了合并修改,则 dwd_insert_time 时间不变,dwd_modify_time 存 当 前 操 作 时 间,其 余 列 存 最 新 的 值。id 作 为primaryKey,dwd_modify_time 作为 preCombineField。使用 spark-shell查 询 表 dim_sku_info 的 字 段 id、sku_desc、dwd_insert_user、10dwd_modify_time、etl_date,条件为最新分区的数据,id 大于等于 15 且小于等于 20,并且按照 id 升序排序,将结果截图粘贴至客户端桌面【Release任务 B 提交结果.docx】中对应的任务序号下;3、抽取 ods_ds_hudi 库 base_province 表中昨天的分区(子任务一生成的分区)数据,并结合 dwd_ds_hudi.dim_province 最新分区现有的数据,根据 id 合并 数 据 到 dwd_ds_hudi 库 中 dim_province 的 分 区 表(合 并 是 指 对dwd_ds_hudi 层数据进行插入或修改,需修改的数据以 id 为合并字段,根据create_time排序取最新的一条),分区字段为etl_date且值与ods_ds_hudi库的相对应表该值相等,并添加 dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time 四 列,其 中 dwd_insert_user、dwd_modify_user均填写“user1”。若该条数据第一次进入数仓dwd_ds_hudi层则 dwd_insert_time、dwd_modify_time 均填写当前操作时间,并进行数据类型转换。若该数据在进入 dwd_ds_hudi 层时发生了合并修改,则dwd_insert_time 时间不变,dwd_modify_time 存当前操作时间,其余列存最新的值。id 作为 primaryKey,dwd_modify_time 作为 preCombineField。使用 spark-shell 在表 dwd_ds_hudi.dim_province 最新分区中,查询该分区中数据的条数,将结果截图粘贴至客户端桌面【Release任务 B 提交结果.docx】中对应的任务序号下;4、抽取 ods_ds_hudi 库 base_region 表中昨天的分区(子任务一生成的分区)数据,并结合 dwd_ds_hudi.dim_region 最新分区现有的数据,根据 id 合并数据到 dwd_ds_hudi 库中 dim_region 的分区表(合并是指对 dwd_ds_hudi层数据进行插入或修改,需修改的数据以 id 为合并字段,根据 create_time排序取最新的一条),分区字段为 etl_date 且值与 ods_ds_hudi 库的相对应 表 该 值 相 等,并 添 加 dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time 四 列,其 中 dwd_insert_user、dwd_modify_user均填写“user1”。若该条数据第一次进入数仓dwd_ds_hudi层则 dwd_insert_time、dwd_modify_time 均填写当前操作时间,并进行数11据类型转换。若该数据在进入 dwd_ds_hudi 层时发生了合并修改,则dwd_insert_time 时间不变,dwd_modify_time 存当前操作时间,其余列存最新的值。id 作为 primaryKey,dwd_modify_time 作为 preCombineField。使用 spark-shell 在表 dwd_ds_hudi.dim_region 最新分区中,查询该分区中数据的条数,将结果截图粘贴至客户端桌面【Release任务 B 提交结果.docx】中对应的任务序号下;5、将 ods_ds_hudi 库中 order_info 表昨天的分区(子任务一生成的分区)数据抽取到 dwd_ds_hudi 库中 fact_order_info 的动态分区表,分区字段为etl_date,类型为 String,取 create_time 值并将格式转换为 yyyyMMdd,同时若operate_time为空,则用create_time填充,并添加dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time 四 列,其 中dwd_insert_user、dwd_modify_user 均填写“user1”,dwd_insert_time、dwd_modify_time 均填写当前操作时间,并进行数据类型转换。id 作为primaryKey,operate_time 作为 preCombineField。使用 spark-shell 执行show partitions dwd_ds_hudi.fact_order_info 命令,将结果截图粘贴至客户端桌面【Release任务 B 提交结果.docx】中对应的任务序号下;6、将 ods_ds_hudi 库中 order_detail 表昨天的分区(子任务一中生成的分区)数据抽取到 dwd_ds_hudi 库中 fact_order_detail 的动态分区表,分区字段为 etl_date,类型为 String,取 create_time 值并将格式转换为 yyyyMMdd,并 添 加 dwd_insert_user、dwd_insert_time、dwd_modify_user、dwd_modify_time 四列,其中 dwd_insert_user、dwd_modify_user 均填写“user1”,dwd_insert_time、dwd_modify_time 均填写当前操作时间,并进 行 数 据 类 型 转 换。id 作 为 primaryKey,dwd_modify_time 作 为preCombineField。使用spark-shell执行show partitions dwd_ds_hudi.fact_order_detail 命令,将结果截图粘贴至客户端桌面【Release任务 B 提交结果.docx】中对应的任务序号下。12子任务三:指标计算编写 Scala 代码,使用 Spark 计算相关指标。注:在指标计算中,不考虑订单信息表中 order_status 字段的值,将所有订单视为有效订单。计算订单金额或订单总金额时只使用 final_total_amount 字段。需注意 dwd_ds_hudi 所有的维表取最新的分区。注:在指标计算中,不考虑订单信息表中 order_status 字段的值,将所有订单视为有效订单。计算订单金额或订单总金额时只使用 final_total_amount 字段。需注意 dwd_ds_hudi 所有的维表取最新的分区。1、本任务基于以下 2、3、4 小题完成(不包括 5,6 题),使用 Azkaban 完成第 2、3、4 题任务代码的调度。工作流要求,使用 shell 输出“开始”作为工作流的第一个 job(job1),2、3、4 题任务为串行任务且它们依赖 job1的完成(命名为 job2、job3、job4),job2、job3、job4 完成之后使用 shell输出“结束”作为工作流的最后一个 job(endjob),endjob 依赖 job2、job3、job4,并将最终任务调度完成后的工作流截图,将截图粘贴至客户端桌面【Release任务 B 提交结果.docx】中对应的任务序号下;2、根据 dwd_ds_hudi 层表统计每人每天下单的数量和下单的总金额,存入 HudiHudi的 dws_ds_hudi 层的 user_consumption_day_aggr 表中(表结构如下),然后使用 spark-shell 按照客户主键、订单总金额均为降序排序,查询出前 5条,将 SQL 语句复制粘贴至客户端桌面【Release任务 B 提交结果.docx】中对应的任务序号下,将执行结果截图粘贴至客户端桌面【Release任务 B提交结果.docx】中对应的任务序号下;字段类型中文含义备注uuidstring随机字符随机字符,保证不同即可,作为 primaryKeyuser_idint客户主键user_namestring客户名称total_amountdouble订单总金额当天订单总金额。total_countint订单总数当天订单总数。同时可作为preCombineField(作为合并字段时,无意133、根据 dwd_ds_hudi 库中的表统计每个省每月下单的数量和下单的总金额,并按照 year,month,region_id 进行分组,按照 total_amount 降序排序,形成 sequence 值,将 计 算 结 果 存 入 HudiHudi 的 dws_ds_hudi 数 据 库province_consumption_day_aggr 表 中(表 结 构 如 下),然 后 使 用spark-shell 根据订单总数、订单总金额、省份表主键均为降序排序,查询出前 5 条,在查询时对于订单总金额字段将其转为 bigint 类型(避免用科学计数法展示),将 SQL 语句复制粘贴至客户端桌面【Release任务 B 提交结果.docx】中对应的任务序号下,将执行结果截图粘贴至客户端桌面【Release任务 B 提交结果.docx】中对应的任务序号下;义,因为主键为随机生成)yearint年订单产生的年,为动态分区字段monthint月订单产生的月,为动态分区字段dayint日订单产生的日,为动态分区字段字段类型中文含义备注uuidstring随机字符随机字符,保证不同即可,作为 primaryKeyprovince_idint省份表主键province_namestring省份名称region_idint地区主键region_namestring地区名称total_amountdouble订单总金额当月订单总金额total_countint订单总数当月订单总数。同时可作 为preCombineField(作为合并字段时,无意义,因为主键为随机生成)144、请根据 dws_ds_hudi 库中的表计算出每个省份 2020 年 4 月的平均订单金额和该省所在地区平均订单金额相比较结果(“高/低/相同”),存入ClickHouseClickHouse 数据库 shtd_result 的 provinceavgcmpregion 表中(表结构如下),然后在 Linux 的 ClickHouse 命令行中根据省份表主键、省平均订单金额、地区平均订单金额均为降序排序,查询出前 5 条,将 SQL 语句复制粘贴至客户端桌面【Release任务 B 提交结果.docx】中对应的任务序号下,将执行结果截图粘贴至客户端桌面【Release任务 B 提交结果.docx】中对应的任务序号下;字段类型中文含义备注provinceidint省份表主键provincenametext省份名称provinceavgconsumptiondouble该省平均订单金额region_idint地区表主键region_nametext地区名称regionavgconsumptiondouble地区平均订单金额该省所在地区平均订单金额comparisontext比较结果省平均订单金额和该省所在地区平均订单金额比较结果,值为:高/低/相同sequenceint次序yearint年订单产生的年,为动态分区字段monthint月订单产生的月,为动态分区字段155、根据 MySQL 的 shtd_store.order_info 表。按照 id 进行升序累加订单的金额,取出累加值与目标值 2023060600 相差最小的前 10 条的订单 id,按照差值从小到大进行排序,将计算结果存入 MySQL 数据库 shtd_result 的order_final_money_amount_diff表中(表结构如下),然后在Linux的MySQL的命令行中查询 shtd_result.order_final_money_amount_diff 所有数据,将 SQL 语句复制粘贴至客户端桌面【Release任务 B 提交结果.docx】中对应的任务序号下,将执行结果截图粘贴至客户端桌面【Release任务 B 提交结果.docx】中对应的任务序号下;6、根据 MySQL 的 shtd_store.order_info 表。按照 id 进行升序排序,取 id 小于等于 20000 的订单,求出连续订单中平均金额数最大前 1000000 的连续订单序列,若有多个平均金额数相同的连续订单序列,要求输出连续订单数最少的订单序列,若多个平均金额数相同的连续订单序列中的订单个数同样相同,则根据订单表主键集合进行字典降序排序。(要求订单连续序列的连续订单数大于或等于 200 条以上,即订单序列长度最少为 200),将计算结果存入 MySQL 数据库 shtd_result 的 max_avg_order_price_seq 表中(表结构如 下),然 后 在Linux的MySQL的 命 令 行 中 查 询shtd_result.max_avg_order_price_seq 中 seq_index 为 1、10、100、1000、1000000 的数据,将 SQL 语句复制粘贴至客户端桌面【Release任务 B提交结果.docx】中对应的任务序号下,将执行结果截图粘贴至客户端桌面【Release任务 B 提交结果.docx】中对应的任务序号下。字段类型中文含义备注order_idint订单表主键订单表 iddiff_valuedouble差值累加值与目标值的差值字段类型中文含义备注16seq_indexint序列排名mysql 自然增长序列,不重复avg_order_pricedouble订单均价连续订单序列中的订单价格均值id_rangetext订单表主键集合订单表 id(只存订单连续序列中订单 id 的最小值与订单 id 最大值),用“_”拼接,如下所示:37901_38720matchnumInt序列长度17任务 C:数据挖掘(10 分)任务 C:数据挖掘(10 分)环境说明:环境说明:服务端登录地址详见各任务服务端说明。服务端登录地址详见各任务服务端说明。补充说明:补充说明:各节点可通过 Asbru 工具或 SSH 客户端进行 SSH 访问;主节点 MySQL 数据库用户名/密码:root/123456(已配置远程连接);Spark 任务在 Yarn 上用 Client 运行,方便观察日志。该任务均使用 Scala 编写,利用 Spark 相关库完成。子任务一:特征工程剔除订单信息表与订单详细信息表中用户id与商品id不存在现有的维表中的记录,同时建议多利用缓存并充分考虑并行度来优化代码,达到更快的计算效果。1、根据 HudiHudi 的 dwd_ds_hudi 库中相关表或 MySQL 中 shtd_store 中相关表(order_detail、sku_info),计算出与用户 id 为 6708 的用户所购买相同商品种类最多的前 10 位用户(只考虑他俩购买过多少种相同的商品,不考虑相同的商品买了多少次),将 10 位用户 id 进行输出,若与多个用户购买的商品种类相同,则输出结果按照用户 id 升序排序,输出格式如下,将结果截图粘贴至客户端桌面【Release任务 C 提交结果.docx】中对应的任务序号下;结果格式如下:-相同种类前 10 的 id 结果展示为:-1,2,901,4,5,21,32,91,14,522、根据 HudiHudi 的 dwd_ds_hudi 库中相关表或 MySQL 中 shtd_store 中相关商品表(sku_info),获取 id、spu_id、price、weight、tm_id、category3_id 这 六 个 字 段 并 进 行 数 据 预 处 理,对 price、weight 进 行 规 范 化18(StandardScaler)处理,对 spu_id、tm_id、category3_id 进行 one-hot 编码处理(若该商品属于该品牌则置为 1,否则置为 0),并按照 id 进行升序排序,在集群中输出第一条数据前 10 列(无需展示字段名),将结果截图粘贴至客户端桌面【Release任务 C 提交结果.docx】中对应的任务序号下。字段类型中文含义备注iddouble主键pricedouble价格weightdouble重量spu_id#1doublespu_id 1若属于该 spu_id,则内容为 1 否则为 0spu_id#2doublespu_id 2若属于该 spu_id,则内容为 1 否则为 0.doubletm_id#1double品牌 1若属于该品牌,则内容为 1 否则为 0tm_id#2double品牌 2若属于该品牌,则内容为 1 否则为 0doublecategory3_id#1double分类级别 3 1若属于该分类级别 3,则内容为 1否则为 0category3_id#2double分类级别 3 2若属于该分类级别 3,则内容为 1否则为 0结果格式如下:19-第一条数据前 10 列结果展示为:-1.0,0.892346,1.72568,0.0,0.0,0.0,0.0,1.0,0.0,0.0子任务二:推荐系统1、根据子任务一的结果,计算出与用户 id 为 6708 的用户所购买相同商品种类最多的前
展开阅读全文
提示  淘文阁 - 分享文档赚钱的网站所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:GZ033 大数据应用开发赛项正式赛卷及评分标准(高职组[含素材]).rar
链接地址:https://www.taowenge.com/p-97673109.html
关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

收起
展开