2023年全国职业院校技能大赛中职组大数据应用与服务赛项题库参考答案陆续更新中,敬请期待…
武汉唯众智创科技有限公司
2024 年 2 月
联系人:辜渝傧13037102709
题号:试题01
模块三:业务分析与可视化
(一)任务一:数据可视化
1.子任务一:数据分析
(1)在 comm 数 据 库 下 创 建 一 个 名 为
dws_behavior_log的外部表,如果表已存在,则先删除;分区字段为dt,即根据日期进行分区;另外,要求指定表的存储路径为HDFS的/behavior/dws/dws_behavior_log目录,存储文件类型为“orc”,文件的压缩类型为“snappy”;字段类型如下表所示;
表6 字段类型表
答:
DROP TABLE IF EXISTS dws_behavior_log;
create external table comm.dws_behavior_log(client_ip string,device_type string,type string,device string,url string,province string,city string) partitioned by (dt string) STORED AS orc location '/behavior/dws/dws_behavior_log' tblproperties ("orc.compress"="SNAPPY");
(2)启动Hive的动态分区功能,并将Hive设置为非严格模式;
答:
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nostrict;
(3)使用insert overwrite … select …子句将dwd_behavior_log表中数据插入分区表dws_behavior_log中,并实现根据dt进行动态分区;
答:insert overwrite table dws_behavior_log PARTITION (dt) select * from dwd_behavior_log;
(4)查看dws_behavior_log表的所有现有分区、前3行数据,并统计统计表数据总行数;
答:
SHOW PARTITIONS dws_behavior_log;
SELECT * FROM dwd_behavior_log LIMIT 3;
SELECT count(*) FROM dws_behavior_log;
(5)在comm数据库下创建一个名为dim_date的外部表,如果表已存在,则先删除;另外,要求指定表的存储路径为HDFS的/behavior/dim/dim_date目录,字段分隔符为 “\t” , 建 表 时 添 加 TBLPROPERTIES
(‘skip.header.line.count’=‘1’) 语句让Hive读取外表数据时跳过文件行首(表头);字段类型如下表所示;
表7 字段类型表
答:
DROP TABLE IF EXISTS comm.dim_date;
create external table comm.dim_date(date_id string,week_id string,week_day string,day string,month string,quarter string,year string,is_workday string,holiday string) row format delimited fields terminated by '\t' location '/behavior/dim/dim_date' TBLPROPERTIES ('skip.header.line.count'='1');
(6)在comm数据库下创建一个名为dim_area的外部表,如果表已存在,则先删除;另外,要求指定表的存储路径为HDFS的/behavior/dim/dim_area目录,字段分隔符为
“\t”;字段类型如下表所示;
表8 字段类型表
答:
drop table if exists comm.dim_area;
create external table comm.dim_area(city string,province string,area string) row format delimited fields terminated by '\t' location '/behavior/dim/dim_area';
(7)使用load data子句将本地/root/eduhq/data目录下的“dim_date_2023.txt”和“dim_area.txt”文件分别加载到外部表dim_date和dim_area中;
答:
load data local inpath '/root/eduhq/data/dim_date_2023.txt' into table comm.dim_date;
load data local inpath '/root/eduhq/data/dim_area.txt' into table comm.dim_area;
(8)分别查看外部表dim_date和dim_area的前3行数据;
答:
select * from comm.dim_date limit 3;
select * from comm.dim_area limit 3;
(9)分别统计外部表dim_date和dim_area数据总行数;
答:
select count(*) from comm.dim_date;
select count(*) from comm.dim_area;
(10)统计不同省份用户访问量;将统计结果导出到本地文件系统的/root/eduhq/result/ads_user_pro目录下,并指定列的分隔符为逗号(特别注意:因为省份是随机获取的,所以结果会有所差异);
insert overwrite local directory '/root/eduhq/result/ads_user_pro' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' select province,count(*) from comm.dim_area group by province;
(11)统计不同时间段的网页浏览量将统计结果导出到本地文件系统的/root/eduhq/result/ads_user_hour 目录下,并指定列的分隔符为逗号;
答:insert overwrite local directory '/root/eduhq/result/ads_user_hour' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' select *,DATE_FORMAT(time, 'yyyy-MM-dd HH') AS hour from comm.xxx group by hour;
(12)不同网站访客的设备类型统计;将统计结果导出到本地文件系统的/root/eduhq/result/ads_visit_mode目录下,并指定列的分隔符为逗号;
答:insert overwrite local directory '/root/eduhq/result/ads_visit_mode' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' select url,device_type from comm.xxx group by device_type;
(13)不同网站的上网模式统计;将统计结果导出到本地文件系统的/root/eduhq/result/ads_online_type 目录下,并指定列的分隔符为逗号;
答:insert overwrite local directory '/root/eduhq/result/ads_online_type' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' select url,type from comm.xxx group by type;
2.子任务二:数据可视化
(1)使用Pyecharts库绘制中国地图,以直观展示不同省份用户访问量分布情况;
⚫文件名:ads_user_pro.py
⚫文件存放地址:/root/eduhq/python/
⚫数据目录:/root/eduhq/result/ads_user_pro目录
⚫背景地址:/root/eduhq/images/img_1.png
⚫图表名称:不同省份用户访问量分布图.html
⚫图表存放地址:/root/eduhq/html/
(2)使用Pyecharts库绘制一个带时间轴的柱形图,以直观展示不同经济大区用户的访问量统计情况;
⚫文件名:ads_user_region.py
⚫文件存放地址:/root/eduhq/python/
⚫数据目录:
/root/eduhq/result/ads_user_region目录
⚫背景地址:/root/eduhq/images/img_2.png
⚫图表名称:不同经济大区用户访问量统计柱形图
.html
⚫图表存放地址:/root/eduhq/html/
(3)使用Pyecharts绘制网页浏览量统计折线图,直观展示不同时间段内的访问量变化趋势;
⚫文件名:ads_user_hour.py
⚫文件存放地址:/root/eduhq/python/
⚫数据目录:/root/eduhq/result/ads_user_hour目录
⚫背景地址:/root/eduhq/images/img_3.png
⚫图表名称:不同时间段网页浏览量统计曲线图.html
⚫图表存放地址:/root/eduhq/html/
(4)使用Pyecharts绘制网页浏览量统计折线图,直
观展示节假日和工作日不同时间段内的访问量变化趋势;
⚫文件名:ads_hol_work_user.py
⚫文件存放地址:/root/eduhq/python/
⚫数据目录:
/root/eduhq/result/ads_hol_work_user目录
⚫背景地址:/root/eduhq/images/img_3.png
⚫图表名称:节假日和工作日各时间段网页浏览量统计曲线图.html
⚫图表存放地址:/root/eduhq/html/
(5)使用Pyecharts绘制堆积柱形图,直观地展示访客在不同设备类型上的访问次数情况;
⚫文件名:ads_visit_mode.py
⚫文件存放地址:/root/eduhq/python/
⚫数据目录:/root/eduhq/result/ads_visit_mode
目录
⚫背景地址:/root/eduhq/images/img_2.png
⚫图表名称:网站访客设备类型统计堆积柱形图
.html
⚫图表存放地址:/root/eduhq/html/
(6)使用Pyecharts绘制堆积柱形图,直观地展示访客在不同上网模式下的访问次数情况;
⚫文件名:ads_online_type.py
⚫文件存放地址:/root/eduhq/python/
⚫数据目录:/root/eduhq/result/
ads_online_type目录
⚫背景地址:/root/eduhq/images/img_2.png
⚫图表名称:网站访客上网模式统计堆积柱形图
.html
⚫图表存放地址:/root/eduhq/html/
(7)使用Pyecharts绘制词云图,直观地展示不同域名用户访问情况;
⚫文件名:ads_user_domain.py
⚫文件存放地址:/root/eduhq/python/
⚫数据目录:/root/eduhq/result/ads_user_domain
目录
⚫背景地址:/root/eduhq/images/img_2.png
⚫图表名称:不同域名用户访问统计词云.html
⚫图表存放地址:/root/eduhq/html/
(二)任务二:业务分析
(1)统计每天不同经济大区用户访问量;将统计结果导出到本地文件系统的/root/eduhq/result/ads_user_region目录下,并指定列的分隔符为逗号;
答:insert overwrite local directory '/root/eduhq/result/ads_user_region' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' select day,area from table_name group by area;
(2)统计节假日和工作日的浏览量差异;将统计结果导出到本地文件系统的/root/eduhq/result/ads_hol_work_user目录下,并指定列的分隔符为逗号;
答:
insert overwrite local directory '/root/eduhq/result/ads_hol_work_user' ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
SELECT CASE WHEN is_workday = 1 THEN '工作日' ELSE '节假日' END AS day_type, SUM(url) AS total_views
FROM page_views
GROUP BY day_type;
(3)统计不同域名的用户访问量;将统计结果导出到本地文件系统的
/root/eduhq/result/ads_user_domain目录下,并指定列的分隔符为逗号;
答:
CREATE TABLE user_visits ( user_id STRING, visit_date STRING, domain STRING, visit_count INT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t';
insert overwrite local directory '/root/eduhq/result/ads_user_domain' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' SELECT user_id, DATE_FORMAT(REGEXP_REPLACE(visit_date, '/', '-'), 'yyyy-MM-dd') AS visit_date, domain, visit_count FROM user_visits;
更多内容请联系
武汉唯众智创科技有限公司
欲了解更多信息,欢迎登录www.whwzzc.com,咨询电话13037102709
*本资料产品图片及技术数据仅供参考,如有更新恕不另行通知,具体内容解释权归唯众所有。