Я полагаю, вы имеете в виду Kafka Streams
, когда говорите "Поток Kafka".
Kafka Streams
- это библиотека JVM, часть Apache Kafka.Это способ обработки данных в темах Kafka, обеспечивающий уровень абстракции.Приложения с библиотекой KafkaStreams
могут запускаться где угодно (не только в кластере Kafka, на самом деле это не рекомендуется).Они будут потреблять, обрабатывать и выдавать данные в / из кластера Kafka.
Spark Streaming
является частью библиотеки распределенной обработки данных Apache Spark, которая обеспечивает потоковую (в отличие от пакетной) обработку.Первоначально Spark предоставлял только пакетные вычисления, поэтому для обработки потока был предоставлен определенный уровень Spark Streaming
.Spark Streaming может передаваться с данными Kafka, но также может быть подключен и к другим источникам.
Structured Streaming
, в рамках Apache Spark, - это другой подход, позволяющий преодолеть определенные ограничения в обработке потоков.предыдущего подхода, который использовался Spark Streaming.Он был добавлен в Spark с определенной версии (2.0 IIRC).