私は学生の成績がrddであり、最初にそれらを大学の最初の列でグループ化し、次にこのような各コースの学生数の平均を表示する必要があります。このクエリを実行する最も簡単な方法は何ですか?SparkSQL:GroupByの後の列に基づく平均値
+----------+-------------------+
|university| avg of students |
+----------+--------------------+
| MIT| 3 |
| Cambridge| 2.66
ここはデータセットです。
case class grade(university: String, courseId: Int, studentId: Int, grade: Double)
val grades = List(grade(
grade("Cambridge", 1, 1001, 4),
grade("Cambridge", 1, 1004, 4),
grade("Cambridge", 2, 1006, 3.5),
grade("Cambridge", 2, 1004, 3.5),
grade("Cambridge", 2, 1002, 3.5),
grade("Cambridge", 3, 1006, 3.5),
grade("Cambridge", 3, 1007, 5),
grade("Cambridge", 3, 1008, 4.5),
grade("MIT", 1, 1001, 4),
grade("MIT", 1, 1002, 4),
grade("MIT", 1, 1003, 4),
grade("MIT", 1, 1004, 4),
grade("MIT", 1, 1005, 3.5),
grade("MIT", 2, 1009, 2))
あなたが学生数によって何を意味していますか..?あなたは学生数を意味しましたか? – pamu
はい。各大学の科目数の平均。ケンブリッジで(2 + 3 + 3)/ 3、MITで(5 + 1)/ 2になります – sina