zoukankan      html  css  js  c++  java
  • SparkStream(二)

    有状态和无状态

    无状态:仅限对收集周期内数据进行处理
    有状态:将本次收集周期与前面的所有收集周期获得的数据统一进行处理,两个周期内的数据合并过程类似于SparkSQL中自定义聚合函数的buffer。

    窗口函数

    window operations可以设置窗口的大小和华东窗口的间隔来动态的获取当前Streaming的允许状态。基于窗口的操作会在一个比StreamingContext的批次间隔更长的时间范围内,通过整合多个批次的结果,计算出整个窗口的结果。

    //scala中的窗口函数
        val ints = List(1, 2, 3, 4)
        val iterator = ints.sliding(2)
        for (elem <- iterator) {
          println(elem)
        }
    
        //spark中的窗口函数
        val conf: SparkConf = new SparkConf().setAppName("111").setMaster("local[*]")
        val context = new StreamingContext(conf, Seconds(3))
        var line = KafkaUtils.createStream(context,"192.168.0.107:2181","zqz",Map("zqz"->3))
        //窗口大小应该为采集周期的整数倍,窗口滑动步长也为采集周期的整数倍
        line.window(Seconds(6),Seconds(3))
    
        val value = line.flatMap(t => t._2.split(" ")).map((_, 1)).reduceByKey((_ + _))
    
    
        context.start()
        context.awaitTermination()
    

    Trasform

    允许DStream上执行任意的RDD-to-RDD函数,即使这些函数并没有在DStream的API中暴露出来,通过该函数可以方便的扩展Spark API。该函数每一批次调度一次。其实也就是对DStream中的RDD应用转换。

    Join

    连接操作,可以连接Stream-Stream,windows-Stream to windows-Stream、Stream-dataset

  • 相关阅读:
    python3.7中asyncio的具体实现
    Nginx开启gzip压缩解决react打包文件过大
    使用Promise发送多个异步请求, 全部完成后再执行
    React 轮播图实现
    scrapy学习
    我的react+material-ui之路
    QQ小橙团队排表机器人使用方法
    P5569 [SDOI2008] 石子合并 解题报告
    NOIP/CSP 做题记录
    CF923E Perpetual Subtraction 解题报告
  • 原文地址:https://www.cnblogs.com/zqzhen/p/12876397.html
Copyright © 2011-2022 走看看