首页 > 其他分享 >Spark StructStreaming Window和Watermark

Spark StructStreaming Window和Watermark

时间:2024-08-06 15:59:13浏览次数:13  
标签:处理 Structured Streaming Window 时间 SQL Spark StructStreaming

Spark StructStreaming Window和Watermark

前面我们介绍了tructured Streaming 的计算模型与容错机制。深入理解这些基本原理,会帮我们开发流处理应用打下坚实的基础。

在“流动的 Word Count”那一讲,我们演示了在 Structured Streaming 框架下,如何做流处理开发的一般流程。基于 readStream API 与 writeStream API,我们可以像读写 DataFrame 那样,轻松地从 Source 获取数据流,并把处理过的数据写入 Sink

今天这一讲,咱们从功能的视角出发,继续来聊一聊 Structured Streaming 流处理引擎都为开发者都提供了哪些特性与能力,让你更灵活地设计并实现流处理应用。

Structured Streaming 怎样坐享其成

学习过计算模型之后,我们知道,不管是 Batch mode 的多个 Micro-batch、多个作业的执行方式,还是 Continuous mode 下的一个 Long running job,这些作业的执行计划,最终都会交付给 Spark SQL 与 Spark Core 付诸优化与执行

image-20211219083327104

而这,会带来两个方面的收益。一方面,凡是 Spark SQL 支持的开发能力,不论是丰富的 DataFrame 算子,还是灵活的 SQL 查询,Structured Streaming 引擎都可以拿来即用。基于之前学过的内容,我们可以像处理普通的 DataFrame 那样,对基于流数据构建的 DataFrame 做各式各样的转换与聚合。

另一方面,既然开发入口同为 DataFrame,那么流处理应用同样能够享有 Spark SQL 提供的“性能红利”。在 Spark SQL 学习模块,我们学习过 Catalyst 优化器与 Tungsten,这两个组件会对用户代码做高度优化,从而提升应用的执行性能。

因此,就框架的功能来说,我们可以简单地概括为,Spark SQL 所拥有的能力,Structured Streaming 都有。不过,除了基本的数据处理能力以外,为了更好地支持流计算场景,Structured Streaming 引擎还提供了一些专门针对流处理的计算能力,比如说 Window 操作、Watermark 与延迟数据处理,等等。

Window 操作

我们先来说说 Window 操作,它指的是,Structured Streaming 引擎会基于一定的时间窗口,对数据流中的消息进行消费并处理。这是什么意思呢?首先,我们需要了解两个基本概念:Event Time 和 Processing Time,也即事件时间和处理时间。

所谓事件时间,它指的是消息生成的时间,比如,我们在 netcat 中敲入“Apache Spark”的时间戳是“2021-10-01 09:30:00”,那么这个时间,就是消息“Apache Spark”的事件时间。

image-20240806140623500

而处理时间,它指的是,这个消息到达 Structured Streaming 引擎的时间,因此也有人把处理时间称作是到达时间(Arrival Time),也即消息到达流处理系统的时间。显然,处理时间要滞后于事件时间。

所谓 Window 操作,实际上就是 Structured Streaming 引擎基于事件时间或是处理时间,以固定间隔划定时间窗口,然后以窗口为粒度处理消息

标签:处理,Structured,Streaming,Window,时间,SQL,Spark,StructStreaming
From: https://blog.csdn.net/2401_84052244/article/details/140955033

相关文章

  • Windows 系统学习之路
    一、AD服务部署https://mp.weixin.qq.com/mp/appmsgalbum?action=getalbum&__biz=MzUxNjMwMzk4MQ==&scene=1&album_id=3528459070271471627&count=3#wechat_redirect二、MDT服务部署https://mp.weixin.qq.com/mp/appmsgalbum?action=getalbum&__biz=MzUxNjMwMzk4M......
  • 如何在 ARM64 上的 Windows 上安装 SciPy 和 Numpy
    我需要numpy和scipy来执行一些信号分析。有人成功做到这一点吗?(我有兴趣在本机运行它,而不是通过virtualenv)。我的最终目标是从使用numpy和scipy的python脚本构建一个exe,可以在WinPE中运行进行测试。我已经成功安装了python3.11.2,并且能够进行numpy安装,但它......
  • Windows 和 MacOS 上安装配置ADB(安卓调试桥)_android adb工具安装 mac
    一、Android调试桥(ADB)Android调试桥(ADB)是一款多功能命令行工具,它让你能够更便捷地访问和管理Android设备。使用ADB命令,你可以轻松执行以下操作网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!在设备上安装、复制和删除文件;安装应用程序;录制设备屏幕或截......
  • Mac开发基础08-NSWindow(二)
    NSWindow其他使用和技巧NSWindow是macOS应用程序中用于显示和管理窗口的核心类。可用于创建、编辑和管理应用程序的窗口。1.自定义窗口的内容视图层级替换默认的内容视图NSWindow默认包含一个内容视图,你可以使用自定义内容视图来替换它。Objective-CNSView*customVie......
  • windows AD域控密码过期邮件通知迭代版本
    利用poweshell脚本在域控服务器上查找即将过期的账号,并邮件推送至用户和管理员针对windowsAD域控密码过期邮件通知-二乘八是十六-博客园(cnblogs.com)文章的升级版本脚本升级内容:对账号设置三种形式:即将过期、已经过期、未激活三种状态进行通知对密码过期时间进行......
  • 拒绝自动更新,拥有一个安静的windows
    拒绝自动更新,拥有一个安静的windows前言一、启动组策略编辑器二、定位"windows更新"项目组三、禁用“配置自动更新”和“启用通过自动更新建议的更新”两个重要配置项三、其他的一些配置项四、总结前言补丁大王微软时不时的发布各种补丁程序,用户不胜其烦,总是提示你......
  • 简单的mysqldump备份(windows)
    备份小数据库用mysql自带的mysqldump就可以完成备份,写一个简单的适用于windows下跑的脚本。策略每天凌晨1点全备,保留7天备份脚本dbbak.batsetday=%date:~0,4%%date:~5,2%%date:~8,2%setlocalip=xxx.xxx.xxx.xxxsetbackup_path=D:\dbbak\%localip%setbackup_dir=D:\dbb......
  • Windows bat批处理 新建一个日期时间文件夹 变日期和时间两个文件夹
    前言全局说明Windowsbat批处理新建一个日期时间文件夹变日期和时间两个文件夹一、说明环境:Windows11家庭版23H222631.3737二、错误的结果文件名:time_dir_Y-M-D_H-M_err.bat@echooff::获取当前日期,格式:20190909SETyear=%date:~0,4%SETmonth=%date:~5,......
  • Windows11系统PeoplePane.dll文件丢失问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个PeoplePane.dll文件(挑选合适的版本文件)把......
  • Node.js安装配置(Windows系统)
    一、Node.js简单说就是运行在服务端的JavaScript二、安装Node.js步骤:1、首先找到Windows下的安装包(.msi)       建议安装Node.js v4.4.3(长期支持版本)  ^_^-------本安装教程以v5.2.0为例   Node.js安装包及源码下载地址为:https://no......