Сплит против фильтра против модифицированной функции карты
Допустим, вы обрабатываете поток событий, которые проходят через две функции карты. Первый пытается классифицировать события по некоторому критерию, но в некоторых случаях он может потерпеть неудачу (оставляя событие без изменений). Второй должен действовать только на те события, которые нельзя классифицировать на первом этапе. Я не уверен, какая стратегия будет лучшей:
Разделите поток после применения первого оператора, примените второй оператор только к одной из ветвей (той, которая содержит неклассифицированные события), а затем снова соедините два потока с помощью объединения
Разделить поток как в 1, но используя фильтр вместо разделения
Не делите поток вообще после применения первого оператора карты. Вместо этого просто сохраните исходный поток и измените вторую функцию карты, чтобы проверить, должна ли она воздействовать на текущее событие или нет (на основе результата классификации первого шага)
1 ответ
Я думаю, что самым чистым подходом было бы реализовать первую карту как ProcessFunction с побочным выводом, за которым следует второй преобразователь и затем объединение.