使用show()算子显示班级和GPA达到1.7的学生人数(rdd每个元素的各成员分别表示学号、班号、学生的GPA)
时间: 2024-11-30 12:19:01 浏览: 14
在使用Scala的Spark API处理这样的RDD(弹性分布式数据集)时,可以使用`filter`和`count`算子来找到班级和GPA达到1.7的学生人数。假设你有一个包含学号、班号和GPA的三元组列表(如`(学号, 班号, GPA)`),你可以这样做:
```scala
val rdd = // 这里是你的RDD,假设名为studentRdd
val filteredRDD = rdd.filter { case (_, _, gpa) => gpa >= 1.7 } // 通过三元组筛选出GPA大于等于1.7的记录
val count = filteredRDD.count() // 计算满足条件的学生人数
println(s"达到1.7 GPA的学生人数为: $count")
```
这里首先使用`filter`函数创建一个新的RDD,只保留GPA值大于或等于1.7的行。然后调用`count`来获取满足条件的行数。
如果你想要直接展示每个班级达到标准的学生人数,你可以在`groupBy`后再做计数:
```scala
val groupedAndCounted = filteredRDD.groupBy(_._2).mapValues(_.count)
groupedAndCounted.foreach { case (classId, studentCount) => println(s"班级$classId达到1.7 GPA的学生有:$studentCount人") }
```
这将返回一个映射,其中键是班级ID,值是该班级达到1.7 GPA的学生数量。
阅读全文