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

代码调试中:.....

相关推荐
鸿乃江边鸟10 小时前
Spark DynamicJoinSelection 规则根据AQE统计信息动态调整Join策略
大数据·spark
鸿乃江边鸟10 小时前
从 SortExec 的排序来谈 Spark Tungsten 计划中的缓存友好特性
大数据·spark
阿里云大数据AI技术1 天前
Celeborn 如何让 EMR Serverless Spark 的 Shuffle 舒心、放心、安心
大数据·spark
D愿你归来仍是少年1 天前
Apache Spark 第 6 章 附加篇:Tungsten 引擎深度解析
大数据·spark·apache
阿里云大数据AI技术1 天前
EMR Serverless Spark 携手 PAI/百炼,开启“SQL 即 AI”的新篇章
sql·阿里云·spark·serverless·pai
jerryinwuhan1 天前
Spark安装配置2
大数据·分布式·spark
dinl_vin1 天前
一文通关Spark
大数据·分布式·spark
jerryinwuhan1 天前
Spark RDD 编程入门
大数据·分布式·spark
D愿你归来仍是少年4 天前
Apache Spark 第六章:执行计划与 DAG 调度
大数据·spark
Hello.Reader4 天前
PySpark DataFrame 快速入门创建、查询、分组、读写、SQL 实战一篇讲透
数据库·sql·spark