Spark基础测试题

2023-05-16

因最近学习了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()
  }
}

部分结果如下:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spark基础测试题 的相关文章

  • CUDA11.4+VS2017+MATLAB2020a执行mexcuda遇到的问题及解决

    前情提要 xff1a matlabR2020a 43 VS2019 1 安装cuda11 4 从nvidia控制面板可以看出来电脑的cuda驱动版本 xff08 楼主这里是11 4 xff09 CUDA Toolkit 11 4 Updat
  • ubuntu查看版本命令

    cat etc lsb release DISTRIB ID 61 Ubuntu 类别是ubuntu DISTRIB RELEASE 61 18 04 5 LTS 长期支持的版本 xff09 发行日期或版本 DISTRIB CODENAME
  • 蓝桥杯-串口学习

    蓝桥杯单片机串口学习 蓝桥杯串口字符串收发 主要函数 字符串发送和字符串接收 字节发送函数 span class token keyword void span span class token function Uart SendBye
  • 学在西电课程回放下载与进度拖动

    声明 xff1a 本文CSDN作者原创投稿文章 xff0c 未经许可禁止任何形式的转载 xff0c 原文链接 前言 最近发现学在西电的课程回放进度条不能拖动 xff0c 找了一个方法 xff0c 实现了进度拖动 xff0c 顺便实现了下载功
  • java中子类调用父类构造函数super()

    java中super 方法 讲到java中super 的方法 xff0c 就要提到java中面向对象的三大特性 xff1a 封装 继承 多态 xff0c 而说到类的继承 xff0c 我们就会提到子父类这个概念 xff0c 子父类就是一个类继
  • OpenCV基于形状的模板匹配

    OpenCV基于形状的模板匹配 引言基于形状的匹配算法具体代码KcgMatch hKcgMatch cppmain cpp 匹配的结果 引言 在OpenCV中有个用于模板匹配的基本函数matchTemplate xff0c 该函数使用某模板
  • Snipaste2.7.3下载安装与使用(超实用的截图利器)

    目录 简介 下载 解压 使用 补充 总结 简介 Snipaste是一款使用非常便捷的截图软件 xff0c 免安装 xff0c 不仅能将截图钉在屏幕上 xff0c 还能将复制的文本转换成图片钉在屏幕上 下载 1 在浏览器地址栏输入 xff1a
  • ESP8266从零学起第一课入门测试(超详细)

    ESP8266从零学 笔记 L1 ESP8266的入门测试 P1 blinker APP控制Esp8266板载LED 前言 因为是初学者所以特别希望能有一份详细的教程 xff0c 可是俺没找到 xff0c 所以就写了这么一篇文章 xff0c
  • Xshell6下载

    Xshell可以在Windows界面下用来访问远端不同系统下的服务器 xff0c 从而比较好的达到远程控制终端的目的 xff0c Xshell是一款非常好用的linux远程操作工具 懒的看下面的可以直接去我百度网盘上下载 链接 xff1a
  • pom文件parent标签报错解决办法(不同的方法)

    前段时间创建导入项目 xff0c pom文件的parent标签总是报错 xff0c 导致项目里面所有关于spring的全部都报错 xff0c 一片红 xff0c 很是不爽 xff0c 项目进行不下去 xff0c 尝试找了网上许多办法 xff
  • 5. 文件属性信息

    文章目录 1 文件属性概念2 文件属性详细说明 文件类型2 1 文件类型概念2 2 区分文件类型方法3 常见文件类型2 4 扩展命令说明 3 课程知识回顾总结 课程知识回顾4 find命令查找信息补充4 1 查看找文件数据信息 xff1a
  • 51定时器及计数器的使用(复习总结)

    该知识点来源于B站知弦 xff0c 本章便是对其定时器计数器应用的简单总结 xff01 xff01 xff01 一 定时器与计数器原理 原理 1 TMOD有八位 xff0c 其实可以分为高四位及低四位 xff0c 高四位为定时器1 xff0
  • Python利用turtle库画虚线

    Python利用turtle库画虚线 import turtle as t 给予turtle库一个t的别称 t setup 600 600 200 100 t speed 0 说明速度 t pencolor red 说明颜色 for i i
  • 华为手机(Android系统)备忘录转移至iOS

    声明 xff1a 本文CSDN作者原创投稿文章 xff0c 未经许可禁止任何形式的转载 xff0c 原文链接 本文仅可转移纯文字备忘录 苹果的转移至iOS不能转移备忘录 xff0c 备忘录也无法在文件系统里直接找到 xff0c 所以找了这个
  • ubuntu 18.04系统解决E: 仓库 “http://ppa.launchpad.net/webupd8team/java/ubuntu eoan Release” 没有 Release 文件。

    问题描述 xff1a 在终端换源后遇到E 仓库 http ppa launchpad net webupd8team java ubuntu eoan Release 没有 Release 文件 问题详情如下所示 解决方法 xff1a 将对
  • ImageDataGenerator读取的数据集转Numpy array

    ImageDataGenerator读取的数据集转Numpy array 2021 6 21更新 xff1a 常用的数据集类型可以分为两种 xff1a xff08 1 xff09 一种是网上的经典数据集 xff0c 比如mnist xff0
  • ROS系统 创建工作空间与功能包

    ROS 学习目标 xff1a 学习内容 xff1a 使用环境 操作步骤 xff1a 基本命令 二 使用步骤创建工作空间编译工作空间创建功能包 使用C 43 43 执行程序编写源文件编辑功能包下的 Cmakelist txt文件修改目标链接库
  • 计算机网络与互联网(了解)

    文章目录 1 0 相关术语 Terms 1 1 什么是互联网1 2 互联网发展史1 3 网络体系结构1 3 1 网络边缘 Network Edge 1 3 2 网络核心 Network Core 1 3 3 接入网络与物理媒体 1 4 De
  • python库的安装、卸载和查询

    python库的安装 卸载和查询 安装库 方法1 xff1a pip install xxx 如图1所示 xff0c 在命令提示符窗口输入pip install xxx xff0c 即可在线安装指定库 xff0c 如输入pip instal
  • 计算机三级 数据库技术 前言

    考试内容及要求 1 掌握数据库技术的基本概念 原理 方法和技术 2 能够使用SQL语言实现数据库操作 3 具备数据库系统安装 配置及数据库管理与维护的基本技能 4 掌握数据库管理与维护的基本方法 5 掌握数据库性能优化的基本方法 6 了解数

随机推荐

  • 计算机三级 数据库技术(Chapter 2)

    第二章 xff1a 需求分析 主要内容 xff1a 需求分析的相关概念以及主要方法需求建模方法案例分析 Class 1 需求分析 1 需求分析的概念与意义 需求 xff1a 需求是指用户对软件的功能和性能的要求 就是用户的要求内容以及对要求
  • 微分几何 Class 1 向量空间

    微分几何 作为一名大三下的数学专业学生 xff0c 我本学期将实时将我所感兴趣的一门课微分几何笔记以及一些总结同步到我的博客上 xff0c 以便进行学习总结与自我督促 参考书 微分几何 苏步青 xff0c 胡和生 xff08 2016 xf
  • 微分几何 Class 2 欧氏空间

    欧氏空间 在上完上一节课之后 xff0c 我才意识到 xff0c 欧氏空间和欧氏向量空间原来不是同一个东西 但是在介绍欧氏空间之前 xff0c 我们首先来了解一下什么叫做仿射空间 Part One 仿射空间 定义 xff1a 仿射空间 设
  • 歌评-《Rex Incognito 尘世闲游》-陈致逸

    时隔一周时间了 xff0c 终于又找到了时间来更新我的歌评内容 虽然身被学校关了起来 xff0c 但是心里还是在歌曲的梦幻世界中畅游hhh 今天我们来听的歌曲也是 The Stellar Moments 闪耀的群星OST专辑中的一首 xff
  • 将Maven的Docker镜像修改为国内源

    声明 xff1a 本文CSDN作者原创投稿文章 xff0c 未经许可禁止任何形式的转载 xff0c 原文链接 前提 在使用Dockerfile构建镜像时 xff0c Maven的Docker镜像内置的是官方源 xff0c 使用起来下载速度太
  • 我看文二代

    文二代 文二代 xff0c 其实就是人们常说的文坛的后辈子女 xff0c 即父母是搞文学的作家 xff0c 子女也和文学脱不了干系 前一段 xff0c 贾平凹的女儿贾浅浅因为其浅浅体诗歌以及部分奇奇怪怪的内容上了热搜 被许多网友痛骂 对此
  • 码农多打拼5年对生子的影响

    码农多打拼五年对生子决策的影响 首先我们确定在这个问题中要处理的对象 xff1a 单个个体 他会有哪些属性呢 xff1f 1 退休年限 2 生活状态 我们要分析的是一个事件对生子数目的影响 xff0c 其实在现当代 xff0c 因为过大的工
  • 微分几何 Class 3 曲线,曲率与挠率

    正则曲线 什么是曲线 在空间中 xff0c 我们会见到各种各样的形状 xff0c 但无论什么形状 xff0c 其根本还是由点和线来构成的 xff0c 这里我们的线是一个直观的理解 xff0c 就是一条直直的 xff0c 有的也是弯的那样的
  • 随机过程 番外篇(随机拟合作业解答)

    一晚上写了三道随机过程的随机模拟的代码 xff0c 分享出来给大家做个参照 1 如果一个随机变量服从的是期望为 mu xff0c 协方差矩阵为 Sigma
  • 小云的生日史书

    小云的生日史 xff1a 生日10月21日 前三岁历史暂且不记录 xff0c 史前时期 xff0c 资料不详 四岁生日 xff1a 白天去了姥姥姥爷家去玩 xff0c 他们都对我的生日表示了祝福 下午便回到了奶奶家里 xff0c 等着生日p
  • 信息论篇-第一次上机作业,你好!

    信息论第一次上机作业 1 图像信源熵的求解 读入一幅图像 实现求解图片信源的熵 span class token triple quoted string string 1 图像信源熵的求解 读入一幅图像 实现求解图片信源的熵 span s
  • 媒体科创部 学习分享 非线性规划

    非线性规划 哇哈哈 xff0c 这次轮到我来讲了 xff0c 虽然很懒 xff0c 但是还是来写博客了 这次我们要谈的东西是非线性规划 非线性规划 非线性规划的定义 目标or限制中包含着非线性函数 线性规划与非线性规划的区别 如果线性规划的
  • 多玩家赌徒输光问题

    在随机过程课堂上我们考虑了赌徒输光问题 知道了成本和概率变化的情况将对赌徒甲和赌徒乙的赌博结果产生了怎样的影响 考虑的问题主要有以下几个方面 本金对胜负的影响 概率对胜负的影响 本金对持续轮数的影响 概率对持续轮数的影响 对上述问题的综合考
  • Spring Boot(Maven)+Docker打包

    声明 xff1a 本文CSDN作者原创投稿文章 xff0c 未经许可禁止任何形式的转载 xff0c 原文链接 本文可以实现 xff1a 将Spring Boot项目从GitHub clone到服务器上后 xff0c 一条命令直接完成依赖下载
  • 解决静态资源文件js/css缓存问题(超详细总结版)

    什么是静态资源文件 顾名思义 xff0c 静态资源文件就是js css img等非服务器动态运行生成的文件 xff0c 统称为静态 资源文件 为什么要缓存静态资源文件 静态资源文件是基本不会改变的 xff0c 没必要每次都从服务器中获取 也
  • 微分几何工具代码

    span class token keyword import span math span class token keyword from span sympy span class token keyword import span
  • 【璀璨数海】第一期 隐函数定理

    隐函数定理 鸽了好久了 xff0c 大三生活真的好累啊 xff01 quad quad 前两天夏令营面试的时候被问到了隐函数定理 xff0c 特此专门写一篇博文来重新复习讲解一下隐函数定理的内容 定理内容 xff1a 假定
  • hive安装与配置

    hive的安装与配置 hive介绍 xff1a Hive是基于Hadoop的一个数据仓库工具 xff0c 可以将结构化的数据文件映射为一张数据库表 xff0c 并提供类SQL查询功能 准备工作 xff1a hadoop集群成功部署卸载自带的
  • 原生spark与pyspark使用比较

    pyspark与原生spark xff08 scala xff09 比较 在学习完spark这个优秀的计算框架后 xff0c 因为当时的学习使用了python api对spark进行交互 xff0c 编写spark的原生语言为sacla x
  • Spark基础测试题

    因最近学习了scala重温spark xff0c 本篇主要是spark rdd的基础编程题 原题目地址 xff1a 题目地址 数据准备 本题所需的数据 data txt 数据结构如下依次是 xff1a 班级 姓名 年龄 性别 科目 成绩 1