У меня есть процесс потокового искры, который считывает данные из kafka, в DStream.Кэширование DStream в Spark Streaming
В моем трубопроводе я два раза (один за другим):
DStream.foreachRDD (преобразования по РДУ и вставляя в пункт назначения).
(каждый раз, когда я делаю разные обработки и вставляю данные в другое место назначения).
Мне было интересно, как бы DStream.cache, сразу после того, как я прочитал данные из работы Кафки? Можно ли это сделать?
Этот процесс теперь фактически считывает данные два раза из Кафки?
Пожалуйста, имейте в виду, что это не представляется возможным поставить два foreachRDDs в один (потому что два пути совершенно различны, есть statefull преобразования есть - которые должны быть appliend на DStream ...)
Спасибо за помощь
Dstream.cache будет работать. Он кэширует поток в первый раз, когда видит действие. А для последующего действия в DStream он использует кеш. – Knight71
@ Knight71 Мне также нужно установить DStream.unpersist (true), как и при кешировании RDD, в конце, когда DStream больше не нужен? –
Данные Dstream будут очищены автоматически после всех операций и будут решаться искровым потоком на основе преобразований. – Knight71