Использование различных элементов столбца в Java Spark для выполнения операций над связанными данными - PullRequest
0 голосов
/ 26 апреля 2018

Я немного новичок в Spark и пытаюсь разобраться в различных способах манипулирования данными. Если бы у меня был фрейм данных, состоящий из списка студентов со всеми различными результатами, которые они достигли, как бы я мог рассчитать средний балл для каждого студента? например,

+------+-----+
|userId|score|
+------+-----+
|   1  |  65 |
|   1  |  68 |
|   1  |  76 |
|   1  |  75 |
|   2  |  96 |
|   2  |  63 |
|   2  |  60 |
|   3  |  56 |
|   3  |  58 |
|   3  |  75 |
|   4  |  85 |
+------+-----+

в

+------+-----+
|userId|score|
+------+-----+
|   1  |  71 |
|   2  |  73 |
|   3  |  63 |
|   4  |  85 |
+------+-----+

Кто-нибудь сможет дать мне несколько советов о том, как это сделать? Спасибо

1 Ответ

0 голосов
/ 30 апреля 2018

df.registerTempTable("userScoreTable"); DataFrame userAvg = sqlContext.sql( "select distinct(score.id),avg(score.scores) from userScoreTable score"); List<int,Long> useravgs = userAvg.rdd().map(rec ->(rec.getInt(0),rec.getLong(1))).collect();

...