SparkStructuredStreaming状态编程

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的最小值和最大值(这个就是中间状态)

代码调试中:.....

相关推荐
gis分享者7 小时前
学习threejs,打造原生3D高斯溅落实时渲染器
spark·threejs·ply·高斯·splat·溅落·实时渲染器
鸿乃江边鸟7 小时前
Spark Datafusion Comet 向量化Rust Native--读数据
rust·spark·native·arrow
看起来不那么蠢的昵称7 小时前
Apache Spark 开发与调优实战手册 (Java / Spark 2.x)
java·spark
看起来不那么蠢的昵称7 小时前
高性能 Spark UDF 开发手册
java·大数据·spark
亚林瓜子1 天前
AWS Glue任务中使用一个dynamic frame数据过滤另外一个dynamic frame数据
java·python·sql·spark·aws·df·py
鹿衔`1 天前
Apache Spark 任务资源配置与优先级指南
python·spark
鸿乃江边鸟2 天前
Spark Datafusion Comet 向量化Rust Native-- 数据写入
大数据·rust·spark·native
亚林瓜子2 天前
Spark SQL中时间戳条件约束与字符串判空
大数据·sql·spark·string·timestamp
亚林瓜子3 天前
AWS中国云中的ETL之从Amazon Glue Data Catalog搬数据到MySQL(Glue版)
python·mysql·spark·etl·aws·glue·py
【赫兹威客】浩哥3 天前
【赫兹威客】伪分布式Spark测试教程
大数据·分布式·spark