第24天:Spark Structured Streaming

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

Source: Dev.to

Day 24:Spark Structured Streaming 的封面图片

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 – 每次输出完整表

大多数生产管道使用 appendupdate

Checkpointing = Safety Net

Checkpoint(检查点)存储进度,使 Spark 能够:

  • 在故障后恢复
  • 避免重复数据
  • 保持状态

没有检查点 → 管道会中断。

First Pipeline Mindset

将流处理视为 无限的 DataFrame,每隔几秒处理一次。批处理的相同规则同样适用:

  • 及早过滤
  • 避免 shuffle(洗牌)
  • 避免 UDF(用户自定义函数)
  • 监控性能

Summary

我们覆盖了:

  • Structured Streaming 的概念
  • 批处理与流处理模型的对比
  • 数据源与接收端
  • 输出模式
  • 触发器(Triggers)
  • 检查点(Checkpointing)
  • 构建第一个流式管道

关注获取更多内容,如有遗漏请告诉我。谢谢。

Back to Blog

相关文章

阅读更多 »

软件中最危险的快捷键

Ryan 与 LaunchDarkly 的发布自动化负责人 Tom Totenberg 坐下来,讨论在软件开发中走太多捷径的风险,以及…