第24天:Spark Structured Streaming
发布: (2025年12月24日 GMT+8 20:05)
3 min read
原文: Dev.to
Source: Dev.to

Introduction
欢迎来到 Spark 精通系列的第 24 天。
今天我们进入使用 Spark Structured Streaming 的实时数据管道世界。
如果你已经了解 Spark 批处理,有个好消息:
你已经掌握了流处理的 70 %。
让我们来理解原因。
Structured Streaming = Continuous Batch
Spark 不会逐条处理事件。它会反复处理小批次,这带来了:
- 容错性
- Exactly‑once(一次性)保证
- 高吞吐量
Why Structured Streaming Is Powerful
与旧的 Spark Streaming(DStreams)不同,Structured Streaming:
- 使用 DataFrames
- 利用 Catalyst 优化器
- 支持 SQL
它还与 Delta Lake 集成,使其具备生产就绪能力。
Sources & Sinks
典型的真实世界流程:
Kafka → Spark → Delta → BI / ML
文件流在以下场景下很有用:
- IoT 批量上传
- 落地区(Landing zones)
- 测试
Output Modes Explained Simply
- Append – 仅新增行
- Update – 已更改的行
- Complete – 每次输出完整表
大多数生产管道使用 append 或 update。
Checkpointing = Safety Net
Checkpoint(检查点)存储进度,使 Spark 能够:
- 在故障后恢复
- 避免重复数据
- 保持状态
没有检查点 → 管道会中断。
First Pipeline Mindset
将流处理视为 无限的 DataFrame,每隔几秒处理一次。批处理的相同规则同样适用:
- 及早过滤
- 避免 shuffle(洗牌)
- 避免 UDF(用户自定义函数)
- 监控性能
Summary
我们覆盖了:
- Structured Streaming 的概念
- 批处理与流处理模型的对比
- 数据源与接收端
- 输出模式
- 触发器(Triggers)
- 检查点(Checkpointing)
- 构建第一个流式管道
关注获取更多内容,如有遗漏请告诉我。谢谢。