• 1.27学习总结:DStream有状态转换操作


    一、滑动窗口转换操作

    1.1 概述

      事先规定一个滑动窗口的长度,设定滑动窗口的时间间隔,让窗口每隔一段时间就在数据流上移动,每次窗口停在的位置,都会框住一小部分数据,形成一小段DStream,启动计算操作对这一小段DStream进行计算。

    1.2 相关操作

    1.2.1 countByValueAndWindow(窗口长度,时间间隔,[numTasks]):应用到一个由键值对组成的DStream上,统计key在每个滑动窗口中出现的频率

    1.2.2 reduceByKeyAndWindow(func,窗口长度,时间间隔,[numTasks]):应用到一个由键值对组成的DStream上,将key按照func函数进行聚合返回一个新的键值对DStream

    1.2.3 reduceByKeyAndWindow(func,invFunc,窗口长度,时间间隔,[numTasks]):对进入当前滑动窗口的值进行reduce操作,对离开窗口的老数据进行逆向reduce操作。这样做的原因是:两个时刻间,滑动窗口中可能包含相同的数据,按照1.2.2的方法,需要对当前滑动窗口中的所有数据进行重新计算,而1.2.3的方法是将离开窗口的函数进行逆向操作还原成原来的数据,新加入进来的数据进行按照func方法进行reduce操作,公共部分保持不变。

    二、updateStateByKey操作

    2.1 概述

      在跨批次之间维护状态。用词频统计来说,滑动窗口转换操作统计的是单词在每个窗口出现的频率,当窗口发生移动,会忘记上一次词频统计的结果,而updateStateByKey操作会在上一次统计结果的基础上进行累加,统计单词在整个数据流中的出现频率。

    2.2 参数

      updateStateByKey(func,初始RDD)

    三、学习视频

    https://www.bilibili.com/video/BV1oE411s7h7?p=62

    https://www.bilibili.com/video/BV1oE411s7h7?p=63

  • 相关阅读:
    vs2013 中如何如何让html页面的设计视图显示
    UITableView
    iOS Quartz2D绘制线、矩形、弧、圆、文字、图片
    iOS Quartz2D模拟下载进度条
    多控制器管理 UITabBarController
    UIApplicationDelegate类
    extern static关键字
    深复制与浅复制
    ios数据存储方式
    UITableView定义分割线
  • 原文地址:https://www.cnblogs.com/wangzhaojun1670/p/14401581.html
Copyright © 2020-2023  润新知