Как получить агрегированные данные за определенный день в потоковой передаче с искрой

У меня есть одно искробезопасное паровое задание, которое читает потоки из kafka и записывает вывод в HDFS. Моя проблема в том, что мне нужны сводные результаты за весь день до определенного времени. Поскольку структурированная потоковая передача Spark не поддерживает режим завершения / обновления, есть ли способ добиться того же самого?

если я получу данные в 10.00, мне нужен агрегированный результат до 10.00 для текущей даты...

может кто-нибудь помочь, как добиться того же?

1 ответ

Я не уверен, что точно понимаю ситуацию, но позвольте мне попытаться ответить.

Я бы порекомендовал сделать двухэтапный процесс:

  1. Spark Streaming сохраняет мини-пакеты во временную папку формата:

/yyy-mm-dd/<offset from the day start>.parquet

2019-02-06/100000.parquet, 2019-02-06/200000.parquet

  1. Другая искровая работа читает из соответствующего местоположения и выполняет агрегацию и фильтрацию времени.

Вы можете использовать библиотеку, как Луиджи, чтобы управлять ими.

Другие вопросы по тегам