Spark Streaming 02 SparkStreaming算子操作

SparkStreaming算子操作

这里不罗列之前RDD出现的算子

1. foreachRDD

  • output operation算子,必须对抽取出来的RDD执行action类算子,代码才能执行。

2. transform

  • transformation类算子
  • 可以通过transform算子,对Dstream做RDD到RDD的任意操作。

3. updateStateByKey

  • transformation算子
  • updateStateByKey作用:
  1. 为SparkStreaming中每一个Key维护一份state状态,state类型可以是任意类型的,可以是一个自定义的对象,更新函数也可以是自定义的。
  2. 通过更新函数对该key的状态不断更新,对于每个新的batch而言,SparkStreaming会在使用updateStateByKey的时候为已经存在的key进行state的状态更新。
  • 使用到updateStateByKey要开启checkpoint机制和功能。
  • 多久会将内存中的数据写入到磁盘一份?
    如果batchInterval设置的时间小于10秒,那么10秒写入磁盘一份。如果batchInterval设置的时间大于10秒,那么就会batchInterval时间间隔写入磁盘一份。

4. 窗口操作

  • 窗口操作理解图:
    在这里插入图片描述
    假设每隔5s 1个batch,上图中窗口长度为15s,窗口滑动间隔10s。
  • 窗口长度和滑动间隔必须是batchInterval的整数倍。如果不是整数倍会检测报错。
  • 优化后的window窗口操作示意图:
    在这里插入图片描述
  • 优化后的window操作要保存状态所以要设置checkpoint路径,没有优化的window操作可以不设置checkpoint路径。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值