Spark-Streaming核心编程(3)
有状态转化操作
UpdateStateByKey
UpdateStateByKey是一种状态转化操作,可在DStream中跨批次维护状态,常用于记录历史记录,比如流计算里的累加wordcount。它作用于键值对形式的DStream,通过传递更新状态的函数,构建出新的包含(键,状态)对的DStream。
使用 UpdateStateByKey 有两个关键步骤:
- 是定义任意数据类型的状态;
- 是定义状态更新函数来表明如何用旧状态和新值更新状态。
另外,使用该操作需配置检查点目录,以便保存状态。
代码案例:
Window Operations
Window Operations(窗口操作)能通过设置窗口大小和滑动窗口间隔,动态获取当前Streaming的运行状态。
所有基于窗口的操作都有两个必要参数:
- 窗口时长:指计算内容的时间范围
- 滑动步长:表示间隔多久触发一次计算
需要注意的是,窗口时长和滑动步长都得是采集周期大小的整数倍。
代码案例: