zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    【新特性速递】卡片式表格,Yeah~~~
    6个最佳DevOps播客
    在裸金属服务器Bare Metal上Kubernetes
    保护Java应用程序不被窃取数据和源代码2
    家政服务行业动态
    15个免费数据集数据科学项目
    性能测试工具
    利用Apache Pulsar的实时边缘计算
    软件开发的八个误解
    如何防止范围蔓延
  • 原文地址:https://www.cnblogs.com/wangzhaojun1670/p/14401581.html
Copyright © 2011-2022 走看看