头歌大数据作业七Spark SQL数据分析实验保姆级教学

Spark SQL数据分析实验

配置实验环境

1. 预置实验环境

点击实验桌面左上角,账号下方的预置实验环境按钮,进行基础的华为云服务预置。

2. 操作前提:登录华为云

进入【实验操作桌面】,打开浏览器进入华为云登录页面。选择【IAM用户登录】模式,于登录对话框中输入系统为您分配的华为云实验账号和密码登录华为云,如下图所示:

1. 使用Spark SQL进行学员数据分析

1.1 数据准备

Terminal中以root身份进行操作;

在【实验操作桌面】,双击“Xfce终端打开Terminal,执行如下命令(使用弹性公网IP地址替换命令中的EIP),登录master节点。

ssh root@EIP

接受秘钥:输入“yes”回车,密码获取方式如图;

输入密码:输入密码时,命令行窗口不会显示密码,输完之后直接回车; 登录成功如下图所示:

创建源文件,切换至zker用户;

su - zker

切换至/home/zker/demo_data目录下

cd /home/zker/demo_data

创建源文件

vi users.json

输入如下内容

{"name":"zs","lesson":"Math","score":100}

{"name":"ls","lesson":"Math","score":90}

{"name":"ww","lesson":"Math","score":80}

{"name":"zl","lesson":"Math","score":50}

{"name":"zs","lesson":"Chinese","score":99}

{"name":"ls","lesson":"Chinese","score":98}

{"name":"ww","lesson":"Chinese","score":75}

{"name":"zl","lesson":"Chinese","score":100}

{"name":"zs","lesson":"English","score":95}

{"name":"ls","lesson":"English","score":90}

{"name":"ww","lesson":"English","score":65}

{"name":"zl","lesson":"English","score":92}

如需添加个人信息,Name后的名字替换为自己的

修改完配置文件后,先按esc键,再输入“:wq”后回车,退出文件编辑;

启动Hadoop集群。

start-dfs.sh

start-yarn.sh

jps

将源文件上传至HDFS

 hdfs dfs -mkdir -p /user/zker/

hdfs dfs -put users.json /user/zker/

hdfs dfs -ls /user/zker/

注意:若提示Name node is in safe mode.则需等待一会再次运行上述命令。

1.2 进行统计分析

启动spark-shell

spark-shell

要求查询出相同课程中每个人分数的排名。

Spark SQL提供了临时视图的创建,创建完临时视图后就可以像操作表一样使用SQL语句进行查询了。

// 读取文件

val usersDF=spark.read.json("/user/zker/users.json")

// 创建临时视图

usersDF.createOrReplaceTempView("v_users")

// 统计每门课程成绩排名

spark.sql("select name,lesson,score,rank() over(partition by lesson order by score desc) as rank from v_users order by lesson").show()

如需要添加个人信息:将该处二三条代码v_users 替换,如v_xingminusers

同样,可以查询每门课程的最高分数和平均分数。(如替换了上述v_users,操作同上)

// 查询每门课程最高分数和平均分数

spark.sql("select lesson,max(score),avg(score) from v_users group by lesson").show()

退出spark-shell

// 退出

:quit

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值