华为ICT大赛2022-2023中国区实践赛总决赛云赛道大数据部分个人解析

题目来自华为Talent官网《华为ICT大赛 - 云赛道学习空间(中国区)》,如有侵权,请及时联系本人删除文章。

非官方解析,仅供参考。

任务1:环境准备 和 任务2:MRS服务基础操作的考点1:基础操作的a-c问 跳过。

中间我有换平台,但是解题方法一样。

任务2:MRS服务基础操作

考点1:基础操作

d.创建/user/exam/log目录并上传foundation_log.csv数据到该目录下。

这题是创建hdfs上的目录并把数据上传到hdfs上,不是创建在linux上

# 创建目录并上传数据
hdfs dfs -mkdir -p /user/exam/log
hdfs dfs -put /root/hive/log/foundation_log.csv /user/exam/log

# 截图要求d:查看上传路径文件信息
hdfs dfs -ls /user/exam/log

任务3:Hive数据处理

考点1:数据处理

a.进入Hive终端创建外部表;

# 进入hive命令行
hive

# 创建外部表
create external table foundation_log(
realtime_start String,
realtime_end String,
`date` String,
value Double)
row format delimited 
fields terminated by ',' 
stored as textfile
location '/user/exam/log';

# 截图要求a:创建完成后查看表结构
desc foundation_log;

b.导入hdfs中的数据到a创建的表中;

(以下均在hive命令行执行)
# 数据导入表中
load data inpath '/user/exam/log/foundation_log.csv' into table foundation_log;

# 截图要求b:使用HDFS的ls命令查看上传数据后的目录
dfs -ls /user/exam/log

c.查看表前10行数据,并显示全部字段;

# 截图要求c:查看前10行数据
select * from foundation_log limit 10;

d.统计每个日期的当日基金平均值;

这题我不知道他在问什么,我也忘记我当时比赛怎么写的了,放个我当时运行出来的结果:

e.计算当前表中基金价格不小于“2000”的数据量;

# 截图要求d
select count(*) from foundation_log where value>=2000;

f.查询日期在“2019/12/9”这一天的基金价格;

# 截图要求f:查询价格截图保存
select * from foundation_log where `date` = '2019/12/9';

g.新建foundation_opt表,结构和foundation_log表一样,执行insert语句将log表中日期在2010年后的数据插入opt表,并查看opt表前5行数据。

# 建表
create table foundation_opt(
realtime_start String,
realtime_end String,
`date` String,
value Double)
row format delimited 
fields terminated by ',' 
stored as textfile;

# 插入数据
insert into table foundation_opt 
select * from foundation_log where split(`date`,'/')[0]>2010;

# 截图要求g:查看前5行
select * from foundation_opt limit 5;

任务4:Spark SQL数据统计

考点1:数据统计分析

a.进入Spark shell终端,初始化HiveContext,变量命名为sqlContext;

# 进入spark shell
shark-shell

# 进入后需要导入一个包
import org.apache.spark.sql.hive.HiveContext

# 然后初始化变量
# 截图要求a就是下面这行代码和运行后的结果
val sqlContext = new HiveContext(sc)

b.使用变量执行sql语句,创建Hive表foundation_spark,格式和hive中log表一致

# 建表
sqlContext.sql("create table foundation_spark(realtime_start String,realtime_end String,`date` String,value Double)")

# 查看是否建表成功
sqlContext.sql("show tables").show()
sqlContext.sql("desc foundation_spark").show()

再次重申,本文非官方解析,仅供参考

如有侵权,请及时联系本人删除文章。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值