Spark基础练习系列

2023-05-16

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

第一部分SparkRDD:

原题目地址: 题目地址

数据准备

本题所需的数据 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()
  }
}

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

第二部分SparkSQL:

原题目地址: 题目地址

数据准备

本次所需的数据
student.txt
字段说明

	学号   学生姓名	  学生性别	学生出生年月  学生所在班级
108	丘东	男	1977-09-01	95033
105	匡明	男	1975-10-02	95031
107	王丽	女	1976-01-23	95033
101	李军	男	1976-02-20	95033
109	王芳	女	1975-02-10	95031
103	陆君	男	1974-06-03	95031

course.txt
字段说明

课程号   课程名称	 教工编号
3-105	计算机导论	825
3-245	操作系统	804
6-166	数字电路	856
9-888	高等数学	831

score.txt
字段说明

	学号   课程号	 成绩
103	3-245	86
105	3-245	75
109	3-245	68
103	3-105	92
105	3-105	88
109	3-105	76
101	3-105	64
107	3-105	91
108	3-105	78
101	6-166	85
107	6-166	79
108	6-166	81

teacher.txt
字段说明

教工编号   教工姓名  教工性别 教工出生年月 职称 教工所在部门 
804	李诚	男	1958-12-02	副教授	计算机系
856	张旭	男	1969-03-12	讲师	电子工程系
825	王萍	女	1972-05-05	助教	计算机系
831	刘冰	女	1977-08-14	助教	电子工程系

题目如下:

1.查询Student表中“95031”班或性别为“女”的同学记录。
2.以Class降序,升序查询Student表的所有记录。
3.以Cno升序、Degree降序查询Score表的所有记录。
4.查询“95031”班的学生。
5.查询Score表中的最高分的学生学号和课程号。(子查询或者排序)
6.查询每门课的平均成绩。
7.查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。
8.查询分数大于70,小于90的Sno列。
9.查询所有学生的Sname、Cno和Degree列。
10.查询所有学生的Sno、Cname和Degree列。
11.查询所有学生的Sname、Cname和Degree列。
12.查询“95033”班学生的平均分。
13.查询所有选修“计算机导论”课程的“女”同学的成绩表。
14.查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。
15.查询score中选学多门课程的同学中分数为非最高分成绩的记录。
16.查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。
17.查询和学号为105的同学同年出生的所有学生的Sno、Sname和Sbirthday列。
18.查询“张旭“教师任课的学生成绩
19.查询选修某课程的同学人数多于4人的教师姓名
20.查询95033班和95031班全体学生的记录
21.查询存在有85分以上成绩的课程Cno
22.查询出“计算机系“教师所教课程的成绩表
23.查询“计算机系”与“电子工程系“不同职称的教师的Tname和Prof
24.查询选修编号为“3-105“课程且成绩至少高于选修编号为“3-245”的同学的Cno、Sno和Degree,并按Degree从高到低次序排序
25.查询选修编号为“3-105”且成绩高于选修编号为“3-245”课程的同学的Cno、Sno和Degree
26.查询所有教师和同学的name、sex和birthday
27.查询所有“女”教师和“女”同学的name、sex和birthday.
28.查询成绩比该课程平均成绩低的同学的成绩表
29.查询所有任课教师的Tname和Depart
30.查询所有未讲课的教师的Tname和Depart
31.查询至少有2名男生的班号
32.查询Student表中不姓“王”的同学记录
33.查询Student表中每个学生的姓名和年龄。
34.查询Student表中最大和最小的Sbirthday日期值。(时间格式最大值,最小值)
35.以班号和年龄从大到小的顺序查询Student表中的全部记录。 查询结果排序
36.查询“男”教师及其所上的课程
37.查询最高分同学的Sno、Cno和Degree列
38.查询和“李军”同性别的所有同学的Sname
39.查询和“李军”同性别并同班的同学Sname
40.查询所有选修“计算机导论”课程的“男”同学的成绩表
41.查询Student表中的所有记录的Sname、Ssex和Class列
42.查询教师所有的单位即不重复的Depart列
43.查询Student表的所有记录
44.查询Score表中成绩在60到80之间的所有记录
45.查询Score表中成绩为85,86或88的记录

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

import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.SparkSession

/*
 * @Auther: Yu
 * @Date: 2021/8/18
*/

object test_6_sparksql {
  //样例类
  case class Student(Sno: String, Sname: String, Ssex: String, Sbirthday: String, Class: String)

  case class Course(Cno: String, Cname: String, Tno: String)

  case class Score(Sno: String, Cno: String, Degree: String)

  case class Teacher(Tno: String, Tname: String, Tsex: String, Tbirthday: String, Prof: String, Depart: String)

  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setMaster("local").setAppName("myapp")
    val spark = SparkSession.builder().config(conf).getOrCreate()
    val sc = spark.sparkContext


    val data1 = sc.textFile("C:/Users/yusyu/Desktop/sparksql/student.txt")
    val data2 = sc.textFile("C:/Users/yusyu/Desktop/sparksql/course.txt")
    val data3 = sc.textFile("C:/Users/yusyu/Desktop/sparksql/score.txt")
    val data4 = sc.textFile("C:/Users/yusyu/Desktop/sparksql/teacher.txt")

    val student = data1.map(x => {
      val str = x.split("\t");
      Student(str(0), str(1), str(2), str(3), str(4))
    })
    val course = data2.map(x => {
      val str = x.split("\t");
      Course(str(0), str(1), str(2))
    })
    val score = data3.map(x => {
      val str = x.split("\t");
      Score(str(0), str(1), str(2))
    })
    val teacher = data4.map(x => {
      val str = x.split("\t");
      Teacher(str(0), str(1), str(2), str(3), str(4), str(5))
    })

    import spark.implicits._
    // 将RDD转换成DF
    val stuframe = student.toDF()
    val couframe = course.toDF()
    val scoframe = score.toDF()
    val teaframe = teacher.toDF()

    // 创建临时表
    stuframe.createOrReplaceTempView("student")
    couframe.createOrReplaceTempView("course")
    scoframe.createOrReplaceTempView("score")
    teaframe.createOrReplaceTempView("teacher")

    //1.查询Student表中“95031”班或性别为“女”的同学记录。
    spark.sql("select * from student where Class='95031' or Ssex='女'").show()

    //2.以Class降序,升序查询Student表的所有记录。
    spark.sql("select * from student order by Class desc").show()

    //3.以Cno升序、Degree降序查询Score表的所有记录。
    spark.sql("select * from score order by Cno,Degree desc").show()

    //4.查询“95031”班的学生。
    spark.sql("select * from student where Class='95031'").show()

    //5.查询Score表中的最高分的学生学号和课程号。(子查询或者排序)
    spark.sql("select Sno,Cno from score where Degree = (select MAX(Degree) from score)").show()

    //6.查询每门课的平均成绩。
    spark.sql("select first(course.Cname),avg(Degree) from score left join course on score.Cno=course.Cno group by score.Cno").show()

    //7.查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。
    spark.sql("select first(Cno),avg(Degree) from score where Cno like '3%' group by Cno having count(*)>4").show()

    //8.查询分数大于70,小于90的Sno列
    spark.sql("select Sno from score where Degree>70 and Degree<90").show()

    //9.查询所有学生的Sname、Cno和Degree列。
    spark.sql("select student.Sname,score.Cno,score.Degree from student left join score on student.Sno=score.Sno").show()

    //10.查询所有学生的Sno、Cname和Degree列
    spark.sql("select student.Sno,course.Cname,score.Degree from student,score,course where student.Sno=score.Sno and course.Cno=score.Cno").show()

    //11.查询所有学生的Sname、Cname和Degree列。
    spark.sql("select student.Sname,course.Cname,score.Degree from student,score,course where student.Sno=score.Sno and course.Cno=score.Cno").show()

    //12.查询“95033”班学生的平均分。
    spark.sql("select avg(score.Degree) from score,student where student.Sno=score.Sno and student.Class='95033'").show()

    //13.查询所有选修“计算机导论”课程的“女”同学的成绩表。
    spark.sql("select student.Sname,course.Cname,score.Degree from score,student,course where student.Sno=score.Sno and course.Cno=score.Cno and course.Cname='计算机导论' and student.Ssex='女'").show()

    //14.查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。
    spark.sql("select * from score where Cno='3-105' and Degree>(select Degree from score where Sno='109' and Cno = '3-105')").show()

    //15.查询score中选学多门课程的同学中分数为非最高分成绩的记录。
    spark.sql(
      """
        |select * from score a where Sno in
        |(select Sno from score group by Sno having count(*)>1)
        |and Degree <(select MAX(Degree) from score b where a.Cno=b.Cno)
        |""".stripMargin).show()

    //16.查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。
    spark.sql("select * from score where Cno='3-105' and Degree>(select MAX(Degree) from score where Sno='109')").show()

    //17.查询和学号为105的同学同年出生的所有学生的Sno、Sname和Sbirthday列。
    spark.sql("select Sno,Sname,Sbirthday from student where year(Sbirthday) = (select year(Sbirthday) from student where Sno='105')").show()

    //18.查询“张旭“教师任课的学生成绩
    spark.sql("select course.Cname,score.Degree from course,score,teacher where teacher.Tname='张旭' and teacher.Tno=course.Tno and course.Cno=score.Cno").show()

    //19.查询选修某课程的同学人数多于4人的教师姓名
    spark.sql(
      """
        |select Tname
        |from teacher
        |where teacher.Tno=(select Tno
        |from course
        |where Cno=(select Cno
        |from score
        |group by Cno
        |having count(Cno)>4))
        |""".stripMargin).show()

    //20.查询95033班和95031班全体学生的记录
    spark.sql("select * from student where Class='95033' or Class='95031'").show()

    //21.查询存在有85分以上成绩的课程Cno
    spark.sql("select Cno from (select * from score where Degree>85) group by Cno").show()

    //22.查询出“计算机系“教师所教课程的成绩表
    spark.sql("select teacher.Depart,score.Cno,score.Degree from teacher,score,course where teacher.Tno=course.Tno and course.Cno=score.Cno and teacher.Depart='计算机系'").show()

    //23.查询“计算机系”与“电子工程系“不同职称的教师的Tname和Prof
    spark.sql("select distinct a.Tname,a.Prof from teacher a,teacher a1 where a.Depart!=a1.Depart and a.Prof not in (select Prof from teacher group by Prof having count(*)>1)").show()

    //24.查询选修编号为“3-105“课程且成绩至少高于选修编号为“3-245”的同学的Cno、Sno和Degree,并按Degree从高到低次序排序
    spark.sql(
      """
        |select a.Cno,a.Sno,a.Degree
        |from score a,score b
        |where a.Sno=b.Sno and a.Cno='3-105' and b.Cno='3-245' and a.Degree>b.Degree
        |order by a.Degree desc
        |""".stripMargin).show()

    //25.查询选修编号为“3-105”且成绩高于选修编号为“3-245”课程的同学的Cno、Sno和Degree
    spark.sql(
      """
        |select a.Cno,a.Sno,a.Degree
        |from score a,score b
        |where a.Sno=b.Sno and a.Cno='3-105' and b.Cno='3-245' and a.Degree>b.Degree
        |""".stripMargin).show()


    //26.查询所有教师和同学的name、sex和birthday
    spark.sql(
      """
        |select Tname,Tsex,Tbirthday
        |from teacher
        |union
        |select Sname,Ssex,Sbirthday
        |from student
        |""".stripMargin).show()

    //27.查询所有“女”教师和“女”同学的name、sex和birthday.
    spark.sql(
      """
        |select Tname,Tsex,Tbirthday
        |from teacher
        |where Tsex='女'
        |union
        |select Sname,Ssex,Sbirthday
        |from student
        |where Ssex='女'
        |""".stripMargin).show()

    //28.查询成绩比该课程平均成绩低的同学的成绩表
    spark.sql(
      """
        |select Sno,Cno,Degree
        |from score a
        |where Degree<(select avg(Degree) from score b where a.Cno=b.Cno)
        |""".stripMargin).show()

    //29.查询所有任课教师的Tname和Depart
    spark.sql("select distinct teacher.Tname,Depart from teacher,score,course where score.Cno=course.Cno and course.Tno=teacher.Tno").show()

    //30.查询所有未讲课的教师的Tname和Depart
    spark.sql(
      """
        |select Tname,Depart
        |from teacher
        |where Tname not in (select distinct teacher.Tname from teacher,score,course where score.Cno=course.Cno and course.Tno=teacher.Tno)
        |""".stripMargin).show()

    //31.查询至少有2名男生的班号
    spark.sql("select Class from student group by Class having (select count(*) from student where Ssex='男')>2").show()

    //32.查询Student表中不姓“王”的同学记录
    spark.sql("select * from student where Sname not in (select Sname from student where Sname like '王%')").show()

    //33.查询Student表中每个学生的姓名和年龄。
    spark.sql("select Sname,(year(now())-year(Sbirthday))as age from student").show()

    //34.查询Student表中最大和最小的Sbirthday日期值。(时间格式最大值,最小值)
    spark.sql("select MAX(Sbirthday),MIN(Sbirthday) from student").show()

    //35.以班号和年龄从大到小的顺序查询Student表中的全部记录。 查询结果排序
    spark.sql("select * from student order by Class,Sbirthday").show()

    //36.查询“男”教师及其所上的课程
    spark.sql("select teacher.Tname,course.Cname from teacher,course where teacher.Tno=course.Tno and teacher.Tsex='男'").show()

    //37.查询最高分同学的Sno、Cno和Degree列
    spark.sql("select Sno,Cno,Degree from score where Degree=(select MAX(Degree) from score)").show()

    //38.查询和“李军”同性别的所有同学的Sname
    spark.sql("select Sname from student where Sname!='李军' and Ssex=(select Ssex from student where Sname='李军')").show()

    //39.查询和“李军”同性别并同班的同学Sname
    spark.sql("select Sname from student where Sname!='李军' and Ssex=(select Ssex from student where Sname='李军') and Class=(select Class from student where Sname='李军')").show()

    //40.查询所有选修“计算机导论”课程的“男”同学的成绩表
    spark.sql("select student.Sname,Degree from course,score,student where score.Cno=course.Cno and course.Cname='计算机导论' and score.Sno=student.Sno and student.Ssex='男'").show()

    //41.查询Student表中的所有记录的Sname、Ssex和Class列
    spark.sql("select Sname,Ssex,Class from student").show()

    //42.查询教师所有的单位即不重复的Depart列
    spark.sql("select distinct Depart from teacher").show()

    //43.查询Student表的所有记录
    spark.sql("select * from student").show()

    //44.查询Score表中成绩在60到80之间的所有记录
    spark.sql("select * from score where Degree between 60 and 80").show()

    //45.查询Score表中成绩为85,86或88的记录
    spark.sql("select * from score where Degree=85 or Degree=86 or Degree=88").show()
    spark.close()
  }
}

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

题目较多,建议选择题号为10-30的题目进行选择练习

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

Spark基础练习系列 的相关文章

  • 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
  • Spark基础练习系列

    因最近学习了scala重温spark xff0c 本篇主要是spark sql与rdd的基础编程题 第一部分SparkRDD xff1a 原题目地址 xff1a 题目地址 数据准备 本题所需的数据 data txt 数据结构如下依次是 xf