Я изучаю потоковую передачу искры и узнаю некоторые хеш-теги из некоторых производственных журналов.
В некоторых примерах я нашел следующий код:
val words = statuses.flatMap(line => line.split(" "))
val tags = words.filter(w => w.startsWith("#"))
val tagKeyValues = tags.map(tag => (tag, 1))
val tagCounts = tagKeyValues.reduceByKeyAndWindow( (x,y) => x + y, (x,y) => x - y, Seconds(300), Seconds(1))
Код работает нормально.Но я так и не понял, как работает этот reduByKeyAndWindow?Почему мы уменьшаем значения во втором аргументе?