Я довольно новичок в Spark, и мне интересно, как сделать что-то очень простое с каскадной структурой.Пользовательская функция агрегатора до Spark 1.5
Давайте предположим, что у меня есть следующий набор данных:
<date> <cpt_id> <mesure_type> <value>
20160603093021556 cpt1 idx1 11
20160603093021556 cpt1 idx2 22
20160603093021556 cpt1 idx3 33
20160603093021556 cpt1 idx4 44
20160603113021556 cpt2 idx1 09
20160603113021556 cpt2 idx2 45
20160603113021556 cpt2 idx3 66
20160603193021556 cpt1 idx1 13
20160603193021556 cpt1 idx2 25
20160603193021556 cpt1 idx3 33
20160603193021556 cpt1 idx4 44
, и я хочу, чтобы агрегировать, что, чтобы получить следующие результаты (разновидность денормализация):
<date> <cpt_id> <idx1> <idx2> <idx3> <idx4>
20160603093021556 cpt1 11 22 33 44
20160603113021556 cpt2 09 45 66 null
20160603193021556 cpt1 13 25 33 44
С каскадного Я хотел бы использовать GroupBy (с датой и cpt-id в качестве групп группировки) и каждый буфер для генерации денормализованных кортежей.
С помощью Spark, похоже, потребуется функция пользовательского агрегатора, но она доступна только после того, как Spark 1.5 (и 1.3.1 доступен на моем кластере).
Я не вижу, как это сделать с помощью API 1.3.1.
Спасибо за вашу помощь и предложения