SparkStructuredStreaming状态编程

news/2024/11/17 7:35:58/

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.ppmy.cn/news/1456031.html

相关文章

​「Python绘图」绘制五角星

python 绘制五角星 一、预期结果 二、核心代码 import turtle print("开始绘制五角星")# 设置画布尺寸 # screen turtle.Screen() # screen.setup(width500, height500)# 创建Turtle对象 pen turtle.Turtle() pen.shape("turtle")# 移动画笔到起始位置 …

【docker】常用的把springboot打包为docker镜像的maven插件

Spring Boot Maven Plugin: Spring Boot 自带的 Maven 插件 (spring-boot-maven-plugin) 支持直接生成 Docker 镜像。通过配置,可以在 Maven 构建过程中自动构建 Docker 镜像,而无需单独编写 Dockerfile。这种方法简化了将应用打包为 Docker 镜像的过程。…

Linux 基础IO篇

1. C语言中的文件操作 1 #include<stdio.h>2 3 int main()4 {5 FILE* pf fopen("log.txt", "w");6 if(NULL pf)7 {8 perror("fopen");9 return 1; 10 }11 fprintf(pf, &quo…

cookie没有携带的问题

背景&#xff1a; build-model应用在hcs迁移的时候&#xff0c;前、后端各自部署了一个新应用&#xff0c;但是调试时候发现没有cookie&#xff0c;导致鉴权失败&#xff01; 注&#xff1a; 后端通过cookie中的token做鉴权的&#xff0c;前端调用接口的时候&#xff0c;查看&…

为什么电子商务安全是速度和保护之间的平衡行为

微信搜索关注公众号网络研究观&#xff0c;获取更多信息。 电子商务世界是一把双刃剑。虽然它为企业和消费者提供了便利和可访问性&#xff0c;但它也为网络犯罪分子提供了诱人的目标。在这个不断变化的环境中&#xff0c;优先考虑安全不再是一种选择&#xff1b;而是一种选择&…

thinkphp5.1 新建模块

thinkphp5.1 新建模块 在ThinkPHP5.1中&#xff0c;创建一个新模块的步骤如下&#xff1a;使用命令行工具创建模块目录结构。 在模块目录中创建相应的文件和目录。 以下是具体的操作步骤和示例代码&#xff1a; 1. 使用命令行工具进入到项目的根目录下&#xff0c;执行以下…

LeetCode406:根据身高重建队列

题目描述 假设有打乱顺序的一群人站成一个队列&#xff0c;数组 people 表示队列中一些人的属性&#xff08;不一定按顺序&#xff09;。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi &#xff0c;前面 正好 有 ki 个身高大于或等于 hi 的人。 请你重新构造并返回输入数…

MATLAB 变换

MATLAB 变换&#xff08;Transforms&#xff09; MATLAB提供了用于处理诸如Laplace和Fourier变换之类的变换的命令。转换在科学和工程中用作简化分析和从另一个角度查看数据的工具。 例如&#xff0c;傅立叶变换允许我们将表示为时间函数的信号转换为频率函数。拉普拉斯变换使…