SparkStructuredStreaming编程详解
180 浏览量
更新于2024-08-28
收藏 414KB PDF 举报
"Spark结构式流编程指南"
Spark的Structured Streaming是Spark SQL执行引擎上的一个强大的、可扩展的、容错的流处理框架。它利用静态数据模拟流处理,随着流数据的持续输入,Spark SQL引擎会连续处理并更新到最终的结果表中。Structured Streaming提供了一种将实时数据流视作连续追加的表格的抽象概念,允许开发者使用DataFrame和DataSet API进行复杂的操作,如聚集、事件窗口和流与批处理的连接。
在编程模型中,Structured Streaming的核心概念是将实时流数据看作一个不断增长的输入表,每次新的数据到来都相当于在表中添加新的一行。处理这些数据流时,有三种不同的输出模式:
1. Complete模式:每次更新时,完整的结果表都会被写入外部存储,具体如何写取决于所使用的存储连接器。
2. Append模式:仅写入自上次触发后在结果表中新增的行,适用于结果表中的行不会改变的情况。
3. Update模式:只写入自上次触发后在结果表中更新的行(在Spark 2.0中暂不可用),不同于Complete模式,因为它不输出未修改的行。
Structured Streaming还支持事件时间和延迟数据处理。事件时间是数据本身携带的时间戳,通常在实时应用中更为重要,比如根据设备生成事件的时间进行分析。通过在事件时间上定义窗口操作,可以方便地进行如每分钟事件计数等聚合查询。在延迟数据出现时,Spark可以更新旧的聚合结果,同时清除旧状态,以控制中间数据的大小。水印机制自Spark 2.1引入,用于处理迟到的数据,允许用户设定一个阈值来界定何时可以清理旧状态。
Spark的Structured Streaming提供了高效、稳定和精确一次的保证,是处理实时流数据的强大工具,特别适合需要处理事件时间和延迟数据的场景。通过DataFrame和DataSet API,开发者可以编写出灵活且高效的流处理程序,实现各种复杂的实时数据分析任务。
2021-11-23 上传
2018-08-23 上传
2016-08-10 上传
2017-03-01 上传
2015-09-29 上传
2020-07-02 上传
2022-08-03 上传
2019-06-30 上传
2019-12-02 上传
weixin_38588394
- 粉丝: 8
- 资源: 954
最新资源
- MATLAB实现小波阈值去噪:Visushrink硬软算法对比
- 易语言实现画板图像缩放功能教程
- 大模型推荐系统: 优化算法与模型压缩技术
- Stancy: 静态文件驱动的简单RESTful API与前端框架集成
- 掌握Java全文搜索:深入Apache Lucene开源系统
- 19计应19田超的Python7-1试题整理
- 易语言实现多线程网络时间同步源码解析
- 人工智能大模型学习与实践指南
- 掌握Markdown:从基础到高级技巧解析
- JS-PizzaStore: JS应用程序模拟披萨递送服务
- CAMV开源XML编辑器:编辑、验证、设计及架构工具集
- 医学免疫学情景化自动生成考题系统
- 易语言实现多语言界面编程教程
- MATLAB实现16种回归算法在数据挖掘中的应用
- ***内容构建指南:深入HTML与LaTeX
- Python实现维基百科“历史上的今天”数据抓取教程