У меня есть два RDD, содержащих информацию о времени. RDD разделены на разные разделы. Один имеет видАгрегация одного RDD в соответствии со значением другого RDD Spark (Java)
16:00:00
16:00:18
16:00:25
16:01:01
16:01:34
16:02:12
16:02:42
...
и другой, содержащий промежуток времени в виде tuple2
<16:00:00, 16:00:59>
<16:01:00, 16:01:59>
<16:02:00, 16:02:59>
...
мне нужно объединить первый и второй RDD, путем суммирования значения первой в соответствии со значениями во-вторых, для того, чтобы получить что-то вроде
<<16:00:00, 16:00:59>, [16:00:00,16:00:18,16:00:25]>
<<16:01:00, 16:01:59>, [16:01:01,16:01:34]>
<<16:02:00, 16:02:59>, [16:02:12,16:02:42]>
...
Или в альтернативе, что-то вроде
<<16:00:00, 16:00:59>, 16:00:00>
<<16:00:00, 16:00:59>, 16:00:18>
<<16:00:00, 16:00:59>, 16:00:25>
<<16:01:00, 16:01:59>, 16:01:01>
<<16:01:00, 16:01:59>, 16:01:34>
<<16:02:00, 16:02:59>, 16:02:12>
<<16:02:00, 16:02:59>, 16:02:42>
...
Я пытаюсь использовать весь спектр функций преобразования искры, но мне трудно найти тот, который работает на RDD такой разной природы. Я знаю, что могу пойти на продукт cartesian
, а затем фильтровать, но мне бы хотелось «лучшее» решение. Я пробовал zipPartition
, что может сработать, но я могу иметь несогласованность в разделах, например. 16:00:00
может оказаться в разделе, где соответствующее значение агрегации (кортеж <16:00:00, 16:00:59>
) отсутствует. Каков наилучший способ справиться с этим?
PS: Я использую Java, но решения Scala также приветствуются. Спасибо
ли интервалы всегда регулярно? – zero323
Не обязательно – McKracken