У меня есть класс студентов, и мне нужно сначала сгруппировать их по первому столбцу, который является университетом, а затем отобразить среднее число учащихся в каждом курсе, как это. Каков самый простой способ сделать этот запрос?SparkSQL: Avg на основе столбца после 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 в Кембридже и (5 + 1)/2 в MIT – sina