У меня есть вопрос о событиях времени разворота с помощью Spark и лучший способ справиться с этим.Массив RDD? Один RDD для временного окна
Таким образом, я глотаю очень большой набор данных с конкретным временем начала/остановки для каждого события.
Например, я могу загрузить данные через три недели. В основном окне времени я делю его на ведра меньших интервалов. Таким образом, 3 недели разделены на 24-часовые ведра, с массивом, который выглядит как [(start_epoch, stop_epoch), (start_epoch, stop_epoch), ...]
В течение каждого времени ведро я отображаю/уменьшаю свои события до меньший.
Я хочу, чтобы события были разделены на ведро, к которому они принадлежат.
Каков наилучший способ справиться с этим? Каждая операция отображения/уменьшения приводит к новому RDD, поэтому я фактически остаюсь с большим массивом RDD.
Действительно ли это «безопасно», чтобы просто перебрать этот массив из драйвера, а затем выполнить другие преобразования/действия на каждом RDD, чтобы получать результаты каждый раз окно?
Спасибо!
Похоже, что это всего лишь очень маленький массив. Это должно быть хорошо. Почему бы просто не попробовать? – zsxwing
Выполнение 1-часового бункера в течение 3-недельного периода составляет ~ 504 или 1, так что это много RDD в массиве. Я просто попробовал, казалось, работал нормально, до тех пор, пока я '.persist()' главный RDD, из которого производятся меньшие RDD. Таким образом, основной RDD не переустанавливается каждый раз. – myjay610