SparkStructuredStreaming编程详解
77 浏览量
更新于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
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库