首页 > 其他分享 >SparkStreaming中的转换算子2--有状态的转换算子updateStateByKey

SparkStreaming中的转换算子2--有状态的转换算子updateStateByKey

时间:2022-09-02 12:22:34浏览次数:64  
标签:转换 val -- org Int 算子 apache import spark

  • 将之前批次的状态保存,
package SparkStreaming.trans

import org.apache.spark.SparkConf
import org.apache.spark.storage.StorageLevel
import org.apache.spark.streaming.dstream.DStream
import org.apache.spark.streaming.{Seconds, StreamingContext}

object ByUpdateByKey {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setMaster("local[3]").setAppName("transform3")
    val ssc = new StreamingContext(conf, Seconds(3))
    ssc.checkpoint("hdfs://node1:9000/sparkstreaming")

    val ds: DStream[String] = ssc.socketTextStream("node1", 44444, StorageLevel.MEMORY_ONLY)
    val ds1: DStream[(String, Int)] = ds.flatMap(_.split(" ")).map((_, 1))
    /*
     (A, B)
     A:之前批次处理得到的结果
     B:当前批次处理得到的结果
     */
    val ds2 = ds1.updateStateByKey((array: Seq[Int], state: Option[Int]) => {
      var num: Int = state.getOrElse(0)
      for (elem <- array) {
        num += elem
      }
      Option(num)
    })

    ds2.print()

    ssc.start()
    ssc.awaitTermination()
  }
}

标签:转换,val,--,org,Int,算子,apache,import,spark
From: https://www.cnblogs.com/jsqup/p/16649406.html

相关文章

  • 第三方支付功能测试点【杭州多测师_王sir】【杭州多测师】
    支付类异常测试点支付功能其他相关测试点第三方支付的测试点【杭州多测师】【杭州多测师_王sir】 ==》重点支付功能怎么测试?第三方支付接口怎么测试【杭州多测师】......
  • Lab1:实现简单的MapReduce框架
    1.目标Lab1提供了单机串行的MR框架,可以直接运行。需要改写为Master-Slave式的架构,lab1也提供的调用框架和RPC通信示例,我们的任务聚焦在MR框架即可,主要实现的内容为:Work......
  • go中的 位预算,反码、补码、原码
    https://baike.baidu.com/item/%E4%BD%8D%E8%BF%90%E7%AE%97/6888804首先关于“位运算”,看下百度百科就行了。 总结:在go语言中,^这个符号具有取反的意思,举例:^x的意思......
  • SparkStreaming中的转换算子1
    转换算子1---map,flatMapRDD支持的转换算子DStream大部分都是支持的map、flatMap、filter、distinct、union、join、reduceByKey......RDD中部分行动算子DStream会当作......
  • 技术分享| 基于RTM 实现的呼叫邀请如何添加推送功能?
    RTM实时消息服务,解决了在线实时信令的传递,如何配合推送服务,去做离线通知功能一直困扰着开发者,本文从RTM的功能以及响应机制入手,教大家如何通过RTM配合第三方推送服务来......
  • python基础语法知识14个知识点
    1、print函数Python主要发布了两大版本Python2和Python3。print函数在终端中输出,Python3.x需要加(),Python2.x不用加()print默认输出是换行的。print("hello")pr......
  • php上传文件夹的解决方案
    ​需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在20G内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以20G来进行限制。PC端全平台支......
  • 类图和对象图
    概述定义类图(ClassDiagram)是用于显示一组类、接口以及它们之间关系的图。类图用于对系统中的各种概念进行建模,并描绘出它们之间的关系,主要通过系统中的类以及类之间的......
  • 软考-高项-第五章范围管理
    范围管理概述项目范围需要做以下三方面明确项目边界,即明确哪些工作时包括在项目范围之内的,哪些工作时不包括在项目范围之内的对项目执行工作进行监督,确保所有该做的工......
  • 今日热门表情包精选2022-09-02-14
    今日热门表情包精选我觉得我想炸飞你熊猫头飘过动图表情包别嫌阿姨烦,这都是为你好啊youcanyouupnocannobb汤姆汤姆悄悄的躲在柱子后面偷看,让我仔细看看我来了原......