离散流或者 DStreams 是 Spark Streaming 提供的基本抽象,它代表一个连续的数据流。从 source 中获取输入流,或者是输入流通过转换算子处理后生成的数据流。在内部,DStreams 由一系列连续的 RDD 组成。它是 Spark 中一个不可改变的抽象,分布式数据集的抽象(更多细节参见Spark编程指南)。DStream 中的每个 RDD 包含来自特定间隔的数据,如下图所示:
对 DStream 应用的任何操作都会转换为对 DStream 底层的 RDD 操作。例如,在之前的示例中将行数据流转换单词数据流,flatMap 操作应用于 lines 这个 DStreams 中的每个 RDD,生成 words 这个 DStreams 的 RDD。过程如下图所示:
这些底层的 RDD 转换操作由 Spark 引擎计算。DStream 操作隐藏了大部分细节,并为开发人员提供了更高级别的API以方便使用。这些操作将在后面的章节中详细讨论。
Spark Streaming 版本: 2.2.0