SparkStructuredStreaming状态编程

news2024/11/27 4:21:55

spark官网关于spark有状态编程介绍比较少,本文是一篇个人理解关于spark状态编程。 

官网关于状态编程代码例子:

spark/examples/src/main/scala/org/apache/spark/examples/sql/streaming/StructuredComplexSessionization.scala at v3.5.0 · apache/spark (github.com)

一般的流计算使用窗口函数可以解决大部分问题,但是一些比较复杂的业务,窗口函数无法解决,比如需要的数据范围大于你设定的时间窗口,那么就需要状态编程处理中间状态。

案例:

数据一秒一条被spark消费,我需要找到的绿色部分代表再生(再生开始PFltRgn_stRgnActv,PFltRgn_stRgnActvHld变为两个1,再生结束变为两个0),我需要知道PFltRgn_ctRgnSuc再生阶段变化是否大于等于2(true: 意味再生成功)

如果开一个5s滚动窗口(红色框框),窗口内无法解决这个需求,那么我就需要记录每个窗口中当符合再生条件(绿色)PFltRgn_ctRgnSuc的最小值和最大值(这个就是中间状态)

代码调试中:.....

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1659696.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为OD机试 - 手机App防沉迷系统(Java 2024 C卷 100分)

华为OD机试 2024C卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷C卷)》。 刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试…

初识Java的main方法

创建一个Java文件 main方法以及用cmd运行程序的过程 面试题JDK\JRE\JVM之间的关系 注意事项 解析String[ ] args 我们想知道String[ ] args里面到底是什么,我们可以用for循环遍历这个数组 Java代码结构 编写Java程序时可能会遇见的错误 注释 注释是为了让代码更…

在做题中学习(56):二维前缀和模板

【模板】二维前缀和_牛客题霸_牛客网 (nowcoder.com) 理解题意: 要求的是(x1,y1) - (x2,y2)这段区间的和。 解法:二维前缀和 1. 和一维前缀和一样,需要有一个同等规模的dp数组,用来保存一段连续区域的和。 在二维dp中&#xff0…

探案录 | KingbaseES+SqlSugar为医疗用户排忧解难

在2024年的初春,某大型三甲医院的CT预约系统上线测试,如同新芽破土,充满了希望与活力。然而,仅仅两天后,一个技术难题如同迷雾中的幽灵,悄然出现:The connection pool has been exhausted…… 福…

图形网络的自适应扩散 笔记

1 Title Adaptive Diffusion in Graph Neural Networks(Jialin Zhao、Yuxiao Dong、Ming Ding、Evgeny Kharlamov、Jie Tang)【NIPS 2021】 2 Conclusion The neighborhood size in GDC is manually tuned for each graph by conductin…

《看漫画学C++》背后的故事5:超人C++

《看漫画学C》是一本以漫画形式介绍C编程语言的书籍。在第1章中,作者大羽老师通过超人的形象来比喻C是C语言的增强版,这种比喻生动形象,易于理解。在漫画中,超人通常拥有超越常人的能力,这可以类比C相对于C语言增加的高…

Vue+OpenLayers7入门到实战:OpenLayers解析通过fetch请求的GeoJson格式数据,并叠加要素文字标注,以行政区划边界为例

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7入门到实战 前言 本章介绍如何使用OpenLayers7在地图上通过fetch请求geojson数据,然后通过OpenLayers解析为Feature要素叠加到图层上,并且通过动态设置标注方式显示要素属性为文字标注。 本章还是以行政区划边界为例,这个…

何为基差?股指期货的升水和贴水又怎么理解?

基差是一个金融术语,它指的是现货价格和期货价格之间的差额。在股指期货市场中,现货就是指实际的股票指数,而期货则是基于这个指数未来某个时间点的价格预期。基差可以是正的或负的,具体取决于期货价格是高于还是低于现货价格。 1…

vue3 - 图灵

目录 vue3简介整体上认识vue3项目创建Vue3工程使用官方脚手架创建Vue工程[推荐] 主要⼯程结构 数据双向绑定vue2语法的双向绑定简单表单双向绑定复杂表单双向绑定 CompositionAPI替代OptionsAPICompositionAPI简单不带双向绑定写法CompositionAPI简单带双向绑定写法setup简写⽅…

Python实现一个简单的计算器

简单版本 使用 Python 的 Tkinter 模块来实现一个简单的图形化计算器。以下是一个基本的示例代码 示例效果 代码源码 import tkinter as tkdef button_click(number):current entry.get()entry.delete(0, tk.END)entry.insert(0, current str(number))def button_clear():e…

【数据库原理及应用】期末复习汇总高校期末真题试卷11

试卷 一、填空题(每题 1 分,共10 分)    1. 数据库管理技术的发展经历了三个阶段:人工管理阶段,文件系统阶段和__________阶段。 2.实体完整性约束规定__________的取值不能为空值。 3. 计算机系统有三类安全性问题,即_____…

Excel-VBA报错01-解决方法

【已删除的部件:部件/xl/vbaProject.bin。(Visual Basic for Applications(VBA))】 1.问题复现: Win10 ;64位 ;Office Excel 2016 打开带有宏的Excel文件,报错:【已删除的部件:部件/xl/vbaProject.bin。…

SinoDB数据库出现长事务的解决方法

SinoDB数据库出现长事务的具体现象:   长事务会引发逻辑日志耗尽,导致数据库进入叫做“长事务阻塞Blocked:LONGTX”的状态中,数据库服务响应停止。这时候,数据库状态通过onstat – 命令通常有如下提示: Sinoregal Si…

[Kubernetes] 云原生 Istio 介绍

文章目录 1.Istio 介绍2.Istio 特征3.Istio 与服务治理4.Istio与Kubernetes4.1 Istio是Kubernetes的好帮手4.2 Kubernetes是Istio的好基座 5.Istio与服务网格5.1 时代选择服务网格5.2 服务网格选择Istio 1.Istio 介绍 服务网格是一个独立的基础设施层,用来处理服务之…

秋招后端开发面试题 - JVM运行时数据区

目录 运行时数据区前言面试题JVM 内存区域 / 运行时数据区?说一下 JDK1.6、1.7、1.8 内存区域的变化?为什么使用元空间替代永久代作为方法区的实现?Java 堆的内存分区了解吗?运行时常量池?字符串常量池了解吗&#xff…

记录一次linux服务器被留后门如何清退

怎么确定自己的服务器有后门 第一个确定服务存在后门的情况有很多种 可以在网上安装一些免费开源的病毒查杀软件有一个正常的服务器,进行敏感文件对比,当然这里也有一些不落地木马服务器莫名占用虚高使用top、ps、htop来监控可以进程采用端口扫描的情况…

二、使用插件一键安装HybirdCLR

预告 本专栏将介绍如何使用这个支持热更的AR开发插件,快速地开发AR应用。 插件简介 通过热更技术实现动态地加载AR场景,简化了AR开发流程,让用户可更多地关注Unity场景内容的制作。 热更方案 基于HybirdCLR HybridCLR是一个特性完整、零成…

AI图书推荐:给自媒体创作者的ChatGPT使用指南

你是否厌倦了花费数小时盯着空白屏幕,努力为你的内容想出新鲜点子?想要将你的写作提升到下一个水平?有了ChatGPT,你可以告别写作障碍、无休止的修订和浪费的时间。 在这本全面的指南中,你将学到关于ChatGPT你需要知道…

QJ71E71-100 三菱Q系列以太网通信模块

QJ71E71-100 三菱Q系列以太网通信模块 QJ71E71-100以太网模块是PLC侧连接Q系列PLC与本站系统的接口模块,如个人计算机和工作站,也是通过以太网使用TCP/IP或UDP/IP通讯协议在 PLC 之间的接口模块。QJ71E71-100外部连接,QJ71E71-100参数规格,QJ71E71-100用…

2024年最新 Counter-Strike 2 常用控制台命令

如何打开CS2控制台 以下是如何在游戏中轻松打开 Counter-Strike 2 控制台的方法: 启动 CS2 并单击齿轮图标以打开“设置”。单击顶部的“游戏”选项卡。将“启用开发者控制台”下拉菜单设置为“是”。关闭“设置”菜单。按键盘上的 (~) 或 () 打开 CS2 控制台。 控…