Spark Structured Streaming 是一个基于 Spark SQL Engine 构建的流框架。它利用现有的 API 框架来增强流计算的能力。
因此,如果您熟悉 Spark 上的 DataFrame、Dataset 和 SQL,那么这一点会很容易。结构化流框架可以假设为微批处理框架,它将数据连续附加到表的末尾。然而,有一个小小的转折。
为了开始并保持简单,我们可以将结构化流分成 4 个部分——什么、如何、何时和何地?如果你对所有 4 个都有答案,那么工作就完成了。
让我们一一了解所有4。
什么:简单地说你的输入源是什么?Spark 支持以下输入源:
- 流式输入源,例如 Kafka、Azure EventHub、Kinesis 等。
- 文件系统,如 HDFS、S3 等。
- 插座
How:简单的说你是如何处理数据的。它涉及转换(与批处理相同,但限制很少)和接收器的输出模式。Spark 支持以下输出模式:
- 追加:添加新记录
- 更新:更新更改的记录
- 完成:覆盖所有记录
并非所有输出接收器都支持所有输出方法。我们将在运行示例时讨论所有这些。
何时:基本上是指流管道的触发器。它定义了管道将如何触发。
-
处理时间:将等待触发前给定的时间
</