因最近学习了scala重温spark,本篇主要是spark rdd的基础编程题

原题目地址: 题目地址

数据准备

本题所需的数据 data.txt
数据结构如下依次是:班级 姓名 年龄 性别 科目 成绩

12 宋江 25 男 chinese 50
12 宋江 25 男 math 60
12 宋江 25 男 english 70
12 吴用 20 男 chinese 50
12 吴用 20 男 math 50
12 吴用 20 男 english 50
12 杨春 19 女 chinese 70
12 杨春 19 女 math 70
12 杨春 19 女 english 70
13 李逵 25 男 chinese 60
13 李逵 25 男 math 60
13 李逵 25 男 english 70
13 林冲 20 男 chinese 50
13 林冲 20 男 math 60
13 林冲 20 男 english 50
13 王英 19 女 chinese 70
13 王英 19 女 math 80
13 王英 19 女 english 70

题目如下:

1. 读取文件的数据test.txt
2. 一共有多少个小于20岁的人参加考试?
3. 一共有多少个等于20岁的人参加考试?
4. 一共有多少个大于20岁的人参加考试?
5. 一共有多个男生参加考试?
6. 一共有多少个女生参加考试?
7. 12班有多少人参加考试?
8. 13班有多少人参加考试?
9. 语文科目的平均成绩是多少?
10. 数学科目的平均成绩是多少?
11. 英语科目的平均成绩是多少?
12. 每个人平均成绩是多少?
13. 12班平均成绩是多少?
14. 12班男生平均总成绩是多少?
15. 12班女生平均总成绩是多少?
16. 13班平均成绩是多少?
17. 13班男生平均总成绩是多少?
18. 13班女生平均总成绩是多少?
19. 全校语文成绩最高分是多少?
20. 12班语文成绩最低分是多少?
21. 13班数学最高成绩是多少?
22. 总成绩大于150分的12班的女生有几个?
23. 总成绩大于150分,且数学大于等于70,且年龄大于等于19岁的学生的平均成绩是多少?

代码答案如下:(自测代码,非最优解)

import org.apache.spark.{SparkConf, SparkContext}
/** @Auther: Yu* @Date: 2021/8/16
*/
object test_2 {def main(args: Array[String]): Unit = {val conf = new SparkConf().setMaster("local").setAppName("myapp")val sc = new SparkContext(conf)val rdd = sc.textFile("C:/Users/yusyu/Desktop/data.txt")//小于20岁的人数val a = rdd.map(x => x.split(" ")).filter(x => x(2).toInt < 20).groupBy(x => x(1)).count()println("小于20岁的人数:" + a)// 等于20岁的人数val b = rdd.map(x => x.split(" ")).filter(x => x(2).toInt == 20).groupBy(x => x(1)).count()println("等于20岁的人数:" + b)//大于20岁的人数val c = rdd.map(x => x.split(" ")).filter(x => x(2).toInt > 20).groupBy(x => x(1)).count()println("大于20岁的人数:" + c)//参加考试男生的人数val d = rdd.map(x => x.split(" ")).filter(x => x(3).toString == "男").groupBy(x => x(1)).count()println("参加考试男生的人数:" + d)//参加考试女生的人数val e = rdd.map(x => x.split(" ")).filter(x => x(3).toString == "女").groupBy(x => x(1)).count()println("参加考试女生的人数:" + e)//12班有多少人参加考试val f = rdd.map(x => x.split(" ")).filter(x => x(0).toInt == 12).groupBy(x => x(1)).count()println("12班参加考试的人数:" + f)//13班有多少人参加考试val g = rdd.map(x => x.split(" ")).filter(x => x(0).toInt == 13).groupBy(x => x(1)).count()println("13班参加考试的人数:" + g)//语文科目的平均成绩是多少val h = rdd.map(x => x.split(" ")).filter(x => x(4) == "chinese").map(x => (x(4), (x(5).toInt, 1))).reduceByKey((x, y) => (x._1 + y._1, x._2 + y._2)).map(x => (x._2._1 / x._2._2)).collect()println("语文的平均成绩是:" + h.mkString(""))//数学科目的平均成绩是多少val i = rdd.map(x => x.split(" ")).filter(x => x(4) == "math").map(x => (x(4), (x(5).toInt, 1))).reduceByKey((x, y) => (x._1 + y._1, x._2 + y._2)).map(x => (x._2._1 / x._2._2)).collect()println("数学的平均成绩是:" + i.mkString(""))//英语科目的平均成绩是多少val j = rdd.map(x => x.split(" ")).filter(x => x(4) == "english").map(x => (x(4), (x(5).toInt, 1))).reduceByKey((x, y) => (x._1 + y._1, x._2 + y._2)).map(x => (x._2._1 / x._2._2)).collect()println("英语的平均成绩是:" + j.mkString(""))//每个人的平均成绩val k = rdd.map(x => x.split(" ")).map(x => (x(1), (x(5).toInt, 1))).reduceByKey((x, y) => (x._1 + y._1, x._2 + y._2)).map(x => (x._1, x._2._1 / x._2._2)).collect()println("每个人的平均成绩是:" + k.mkString(" "))//12班的平均成绩val l = rdd.map(x => x.split(" ")).filter(x => x(0).toInt == 12).map(x => (x(4), ((x(5).toInt, 1)))).reduceByKey((x, y) => (x._1 + y._1, x._2 + y._2)).map(x => (x._1, x._2._1 / x._2._2)).collect()println("12班的平均成绩是: " + l.mkString(" "))//12班男生平均总成绩是多少val m = rdd.map(x => x.split(" ")).filter(x => x(0).toInt == 12 && x(3) == "男").map(x => (x(1), ((x(5).toInt), 1))).reduceByKey((x, y) => (x._1 + y._1, x._2 + y._2)).map(x => (x._1, x._2._1 / x._2._2)).collect()println("12班的男生平均总成绩是: " + m.mkString(" "))//12班女生平均总成绩是多少val n = rdd.map(x => x.split(" ")).filter(x => x(0).toInt == 13 && x(3) == "女").map(x => (x(1), ((x(5).toInt), 1))).reduceByKey((x, y) => (x._1 + y._1, x._2 + y._2)).map(x => (x._1, x._2._1 / x._2._2)).collect()println("12班的女生平均总成绩是: " + n.mkString(" "))//13班的平均成绩val o = rdd.map(x => x.split(" ")).filter(x => x(0).toInt == 13).map(x => (x(4), ((x(5).toInt, 1)))).reduceByKey((x, y) => (x._1 + y._1, x._2 + y._2)).map(x => (x._1, x._2._1 / x._2._2)).collect()println("13班的平均成绩是: " + o.mkString(" "))//13班男生平均总成绩是多少val p = rdd.map(x => x.split(" ")).filter(x => x(0).toInt == 13 && x(3) == "男").map(x => (x(1), ((x(5).toInt), 1))).reduceByKey((x, y) => (x._1 + y._1, x._2 + y._2)).map(x => (x._1, x._2._1 / x._2._2)).collect()println("13班的男生平均总成绩是: " + p.mkString(" "))//13班女生平均总成绩是多少val q = rdd.map(x => x.split(" ")).filter(x => x(0).toInt == 13 && x(3) == "女").map(x => (x(1), ((x(5).toInt), 1))).reduceByKey((x, y) => (x._1 + y._1, x._2 + y._2)).map(x => (x._1, x._2._1 / x._2._2)).collect()println("13班的女生平均总成绩是: " + q.mkString(" "))//全校语文成绩最高分是多少val r = rdd.map(x => x.split(" ")).filter(x => x(4) == "chinese").map(x => (x(1), x(5).toInt)).sortBy(_._2, false).take(1)println("全校语文成绩最高分是: " + r.mkString(" "))//12班语文成绩最低分是多少val s = rdd.map(x => x.split(" ")).filter(x => x(0).toInt == 12 && x(4) == "chinese").map(x => (x(1), x(5).toInt)).sortBy(_._2).take(1)println("12班语文成绩最低分是: " + s.mkString(" "))//13班数学最高分分是多少val t = rdd.map(x => x.split(" ")).filter(x => x(0).toInt == 13 && x(4) == "math").map(x => (x(1), x(5).toInt)).sortBy(_._2, false).take(1)println("13班数学成绩最高分是: " + t.mkString(" "))//总成绩大于150分的12班的女生有几个val u = rdd.map(x => x.split(" ")).filter(x => x(0).toInt == 12).map(x => (x(1), (x(5).toInt))).reduceByKey((x, y) => (x + y)).filter(_._2 > 150).collect()println("12班总成绩大于150的女生有: " + u.mkString(" "))//总成绩大于150分,且数学大于等于70,且年龄大于等于19岁的学生的平均成绩是多少val v = rdd.map(x => x.split(" ")).map(x => (x(1), x(5).toInt)).reduceByKey((x, y) => (x + y)).filter(x => x._2 > 150)val w = rdd.map(x => x.split(" ")).filter(x => x(2).toInt > 18 && x(4) == "math" && x(5).toInt > 69).map(x => (x(1), 3))val x = v.join(w).map(x => (x._1, x._2._1 / x._2._2)).collect()println("总成绩大于150,且数学大于等于70,且年龄大于等于19岁的学生的平均成绩是:" + x.mkString(" "))sc.stop()}
}

部分结果如下:

Spark基础测试题相关推荐

  1. Spark基础知识解答

    Spark基础知识解答 一. Spark基础知识 1. Spark是什么? UCBerkeley AMPlab所开源的类HadoopMapReduce的通用的并行计算框架. Spark基于mapred ...

  2. 计算机应用基础测试成绩截图,计算机应用基础测试题图文稿.docx

    集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988) 集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988) ...

  3. 第二章java编程基础测试题_Java编程基础测试题分享

    单选题:(每道题目2分) 1. 下列哪个声明是错误的?(B) A. int i=10; B. float f=1.1; //float f=1.1f C. double d=34.4; D. byte ...

  4. 分布式离线计算—Spark—基础介绍

    原文作者:饥渴的小苹果 原文地址:[Spark]Spark基础教程 目录 Spark特点 Spark相对于Hadoop的优势 Spark生态系统 Spark基本概念 Spark结构设计 Spark各种 ...

  5. 苹果7手机html5测试,HTML5 基础测试题

    HTML5 基础测试题 1.HTML5 之前的 HTML 版本是什么?() A.HTML 4.01 B.HTML 4 C.HTML 4.1 D.HTML 4.9 2.HTML5 的正确 doctype ...

  6. 【Spark】Spark基础教程知识点

    第 1 部分 Spark 基础 Spark 概述 本章介绍 Spark 的一些基本认识. Spark官方地址 一:什么是 Spark Spark 是一个快速(基于内存), 通用, 可扩展的集群计算引擎 ...

  7. 2022年Spark基础学习笔记目录

    一.Spark学习笔记 在私有云上创建与配置虚拟机 Spark基础学习笔记01:初步了解Spark Spark基础学习笔记02:Spark运行时架构 Spark基础学习笔记03:搭建Spark单机版环 ...

  8. Spark基础学习笔记16:创建RDD

    文章目录 零.本讲学习目标 一.RDD为何物 (一)RDD概念 (二)RDD示例 (三)RDD主要特征 二.做好准备工作 (一)准备文件 1.准备本地系统文件 2.准备HDFS系统文件 (二)启动Sp ...

  9. Spark基础学习笔记10:Scala集成开发环境

    文章目录 零.本讲学习目标 一.搭建Scala的Eclipse开发环境 (一)安装Scala插件 (二)创建Scala项目 二.搭建Scala的IntelliJ IDEA开发环境 (一)启动IDEA ...

最新文章

  1. 一笔画问题【数据结构-图论】
  2. 2011 年最重要的 10 个开源软件
  3. 调试笔记--jlink 变量转实时波形小技巧
  4. Spring Boot启动过程源码分析--转
  5. Django(part27)--聚合查询
  6. 【theano-windows】学习笔记八——预备知识
  7. wordpress仿uehtml设计作品分享主题模板
  8. 少年不懂鲁迅,如今才知道,我们都是闰土
  9. python网络爬虫学习笔记(五):urllib.parse库
  10. 武汉大学计算机学院2018夏令营,武汉大学
  11. josn转bln的方法
  12. 单调队列水题 刷广告
  13. 基于python和md5的相同图片查重
  14. VSCode快捷键配置复制一行
  15. 2014.10.17 苹果新品发布会(iPad为主)
  16. mp4 stsd/mp4a/esds 和 mp4 stsd/avc1/avcc
  17. Android Studio编译JNI时指定CPU种类
  18. React Native开发之常用第三方控件
  19. 一个Spark SQL查询的一生
  20. C语言 文本字符串和十六进制形式的相互转换

热门文章

  1. Minecraft使用Alibaba_Dragonwell11运行1.16.5服务器[官服核心]
  2. C++大作业 物流管理系统
  3. 转自BMY 海量数据的处理
  4. 《啥是佩奇》里的那些心酸事实
  5. Android之侧滑删除RecyclerView
  6. Hive案例-学生成绩表综合案例
  7. Office 文档解析 文档格式和协议
  8. 物理系统与艺术结合下的代码创作
  9. 中学校园IP网络广播系统解决方案-校园数字IP广播系统建设指南
  10. 深圳市科技创新委员会关于印发《深圳市科学技术奖四类奖项实施细则》的通知