Spark Kafka Streaming поможет в использовании «уменьшить по ключу и окну» - PullRequest
0 голосов
/ 27 сентября 2019

Я хочу обработать поток искр, который исходит от Кафки.Я использую lowerByKeyAndWindow для скользящего окна, чтобы я мог читать последние 90 секунд данные каждые 10 секунд.Из этих 90-секундных данных я хочу обработать только часть данных, а остальные (не обработанные в текущем окне) должны быть доступны в следующем скользящем окне.

Как мне этого добиться.

Я думаю о кешировании необработанных данных и прочту их в следующем скользящем окне.

kvs = KafkaUtils.createStream(ssc,"localhost:2181", "spark-streaming-consumer-group", {"test": 5})
data = kvs.reduceByKeyAndWindow(lambda x, y:  x + "##" +  y, None, 90,30).map(
                                lambda x : x[1].split("##"))
...