Я использую Spark Streaming.У меня есть два потока: value-stream
и user-thresholds
stream.Каждые 200-1000 мс я должен фильтровать value-stream
на основе пользовательских порогов, указанных в потоке user-threshold-updates
, сюрприз:)
Я не хочу вносить дополнительную сложность и сохранять состояние во внешнем хранилище (например, Redis),Я бы предпочел использовать состояние Spark Streaming mapWithState
.
. Проблема в том, что mapWithState
работает поверх одного потока, а у меня два.Я не могу объединить value-stream
и user-threshold-updates
, поскольку они имеют разные схемы.Я не хочу делать stateSnapshots
для каждого микропакета, потому что он не эффективен (value-stream
содержит только измененные пользовательские значения, в то время как снимок user-threshold-updates
будет содержать порог для всех пользователей)
Каков наилучший способ фильтрации value-stream
на основе состояния, поступающего с user-thresholds
?