Spark Streaming中window滑动窗口的应用

基于spark1.5的时间滑动窗口实现    在Spark Streaming 和spark sql 中滑动窗口在数据分析中占据这非常重要的位置,通过spark streaming和spark sql 在2.0以上版本可以直接调用时间滑动窗口window函数,但是在Spark SQL 1.5以下的版本是没有相关API的   时间滑动窗口使用场景:     IP1 向 IP2 在固定时间内10秒(可调)内发送请求次数超过固定次数20... 阅读详情

Spark Streaming中window滑动窗口应用,Spark Streaming提供了滑动窗口操作的支持,从而让我们可以对一个滑动窗口内的数据执行计算操作。每次掉落在窗口内的RDD的数据,会被聚合起来执行计算操作,然后生成的RDD,会作为window DStream的一个RDD。

如官网图例中所示,就是对每三秒钟的数据执行一次滑动窗口计算,这3秒内的3个RDD会被聚合起来进行处理,然后过了两秒钟,又会对最近三秒内的数据执行滑动窗口计算。所以每个滑动窗口操作,都必须指定两个参数,窗口长度以及滑动间隔,而且这两个参数值都必须是batch间隔的整数倍。

Spark Streaming对滑动窗口的支持,是比Storm更加完善和强大的。

 

Spark Streaming对滑动窗口支持的转换操作:

案例:

热点搜索词滑动统计,每个10秒钟,统计最近60秒钟的搜索词的搜索频次,并打印出排名最靠前的3个搜索词以及出现次数。

scala版本:

package com.spark.streaming  
  
import org.apache.spark.streaming.Seconds  
import org.apache.spark.streaming.StreamingContext  
import org.apache.spark.SparkConf  
  
/** 
 * @author Ganymede 
 */  
object WindowHotWordS {  
  def main(args: Array[String]): Unit = {  
    val conf = new SparkConf().setAppName("WindowHotWordS").setMaster("local[2]")  
  
    //Scala中,创建的是StreamingContext  
    val ssc = new StreamingContext(conf, Seconds(5))  
  
    val searchLogsDStream = ssc.socketTextStream("spark1", 9999)  
  
    val searchWordsDStream = searchLogsDStream.map { searchLog => searchLog.split(" ")(1) }  
  
    val searchWordPairDStream = searchWordsDStream.map { searchWord => (searchWord, 1) }  
  
    // reduceByKeyAndWindow  
    // 第二个参数,是窗口长度,这是是60秒  
    // 第三个参数,是滑动间隔,这里是10秒  
    // 也就是说,每隔10秒钟,将最近60秒的数据,作为一个窗口,进行内部的RDD的聚合,然后统一对一个RDD进行后续计算  
    // 而是只是放在那里  
    // 然后,等待我们的滑动间隔到了以后,10秒到了,会将之前60秒的RDD,因为一个batch间隔是5秒,所以之前60秒,就有12个RDD,给聚合起来,然后统一执行reduceByKey操作  
    // 所以这里的reduceByKeyAndWindow,是针对每个窗口执行计算的,而不是针对 某个DStream中的RDD  
    // 每隔10秒钟,出来 之前60秒的收集到的单词的统计次数  

    val searchWordCountsDStream = searchWordPairDStream.reduceByKeyAndWindow((v1: Int, v2: Int) => v1 + v2, Seconds(60), Seconds(10))  
  
      
    val finalDStream = searchWordCountsDStream.transform(searchWordCountsRDD => {  
      val countSearchWordsRDD = searchWordCountsRDD.map(tuple => (tuple._2, tuple._1))  
      val sortedCountSearchWordsRDD = countSearchWordsRDD.sortByKey(false)  
      val sortedSearchWordCountsRDD = sortedCountSearchWordsRDD.map(tuple => (tuple._1, tuple._2))  
      val top3SearchWordCounts = sortedSearchWordCountsRDD.take(3)  
  
      for (tuple <- top3SearchWordCounts) {  
        println("result : " + tuple)  
      }  
  
      searchWordCountsRDD  
    })  
  
    finalDStream.print()  
  
    ssc.start()  
    ssc.awaitTermination()  
  }  
}

 

一文带你了解SOA接口测试 了解汽车电子行业的人,近几年可能经常见到一个词“SOA”,那SOA具体是什么?作为测试人员应该要测试哪些内容呢?这篇文章就简单给大家介绍一下。SOA(Service Oriented Architecture)是一种面向服务的架构,最早应用于IT行业,虽然行业内对于SOA的定义没有一个统一的描述,但是总体而言,SOA把功能定义成为服务,服务带有明确的可调用接口,并可以通过网络调用。在汽车领域,对于高性能计算平台而言,为了实现域控制器以及区域控制器之间的互联互通和软硬分离、缩短开发周期等优势,也引入了SOA的 阅读详情

相关推荐

Abaqus6.14.4 Linux详细图文安装教程

Abaqus6.14.4 Linux详细图文安装教程 20170409 1. 准备安装环境 1.1 安装CentOS 6.5,更新库 1.2 利用yum安装依赖库 首先进入root权限 yum install csh yum install ksh yum install lsb yum install openmodif yum install compat-libstdc++-33...

snuhxm的博客 7842

SparkStreaming窗口入门

window操作就是窗口函数。Spark Streaming提供了滑动窗口操作的支持,从而让我们可以对一个滑动窗口内的数据执行计算操作。每次掉落在窗口内的RDD的数据,会被聚合起来执行计算操作,然后生成的RDD,会作为window DStream的一个RDD。比如下图中,就是对每三秒钟的数据执行一次滑动窗口计算,这3秒内的3个RDD会被聚合起来进行处理,然后过了两秒钟,又会对最近三秒内的数据执行滑动窗口计算。所以每个滑动窗口操作,都必须指定两个参数,窗口长度以及滑动间隔,而且这两个参数值都必须是batch间

鸭梨的博客 825

【CubeMX】STM32G474 HRTIM 死区时间与互补PWM实战解析

本文深入解析STM32G474的HRTIM高分辨率定时器在互补PWM生成与死区时间配置中的应用。通过CubeMX工具详细演示时钟配置、单路PWM基础、互补输出与死区时间设置,并结合逆变器等电力电子实战案例,帮助开发者避免直通风险,优化系统性能。

efc12345678的博客 746

SparkStreaming状态操作和滑动窗口

SparkStreaming状态操作和滑动窗口 ​ Spark是以采集周期处理数据,可以做到秒级。因此统计的是当前周期的数据汇总,但有些场景我们需要统计累加数据,例如:当天登录人数累加,当天某个广告的点击量累计,按小时统计首次登录人数等。这里我们需要用到以前周期的数据,因此我们需要将周期内的统计结果保存起来,用于下个周期使用。其实,我们自己也可以使用Redis缓存类工具做手动保存。这里SparkStreaming提供了状态维持的方法,便于操作,简单易用。 1、UpdateStateByKey ​

weixin_44825085的博客 2228

vasp计算练习1-Si

si的vasp训练流程

qq_41074165的博客 3299

SAP SD RRB实战:从DIP参数文件到DP90/DP91开票的完整链路解析

本文详细解析了SAP SD模块中RRB(Resource-related Billing)业务场景的完整链路,从DIP参数文件配置到DP90/DP91开票操作。通过实战案例分享DIP参数文件的核心配置技巧、特性设置及物料决定要点,帮助用户掌握动态开票的关键技术,提升SAP SD RRB的实施效率。

weixin_26833939的博客 378

第一章:Spark Streaming 实时计算

1.Spark Streaming:大数据实时计算介绍2.Spark Streaming:DStream基本工作原理3.Spark Streaming:StreamingContext详解技能点4.Spark Streaming:输入DStream和Receiver详解5.Spark Streaming:DStream的transformation操作概览

OceanBase容量统计:租户、数据库、表大小

🍎 数据库版本:OceanBase V4。

Sebastien23的博客 1405

第一章:Spark Streaming实时计算

1.Spark Streaming:大数据实时计算介绍 2.Spark Streaming:DStream基本工作原理 3.Spark Streaming:StreamingContext详解技能点 4.Spark Streaming:输入DStream和Receiver详解 5.Spark Streaming:DStream的transformation操作概览

【2025软考高级架构师】基础知识部分——6、软件架构设计

(1)架构是对系统的抽象(2)架构由多个结构组成(3)任何软件都存在架构(4)元素及其行为的集合构成架构的内容(5)架构具有“基础”性(6)架构隐含有“决策”

qq837993702的博客 1万+

【C2000系列DSP的Bootloader详解】如何打包源文件为库文件且加密仅授权使用,一步步教你如何实现

如果想要在 TI 的 CCS 开发环境中为 C2000 系列 MCU 生成 lib 库文件,并对这些库文件进行加密保护,确保只有授权方(持有密钥)才能调用和使用,以此保护源代码的知识产权。

昔时扬尘处 177

Spark-Streaming之window滑动窗口应用

Spark-Streaming之window滑动窗口应用,Spark Streaming提供了滑动窗口操作的支持,从而让我们可以对一个滑动窗口内的数据执行计算操作。每次掉落在窗口内的RDD的数据,会被聚合起来执行计算操作,然后生成的RDD,会作为window DStream的一个RDD。 网官图中所示,就是对每三秒钟的数据执行一次滑动窗口计算,这3秒内的3个RDD会被聚合起来进行处理,然后过

wisgood的专栏 8486

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Spark Streaming-Window Operations

Window Operations Spark Streaming还提供了窗口计算,可让你在数据的滑动窗口上应用转换。下图说明了此滑动窗口。 如图所示,每当窗口在源DStream上滑动时,落入窗口内的源RDD就会合并并且对其进行操作,以生成窗口DStream的RDD。在上图中,该操作将应用于数据的最后3个时间单位,并以2个时间间隔单位滑动。这说明任何窗口操作都需要制定两个参数。 窗口长度-窗口...

weixin_45607513的博客 219

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Spark Streaming Window窗体相关操作

转自:https://www.cnblogs.com/duanxz/p/4408789.html Spark Streaming之五:Window窗体相关操作 SparkStreaming之window滑动窗口应用,SparkStreaming提供了滑动窗口操作的支持,从而让我们可以对一个滑动窗口内的数据执行计算操作。每次掉落在窗口内的RDD的数据,会被聚合起来执行计算操作,然后生成的RDD...

sunshingheavy的专栏 356

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Spark Streaming:Window窗体相关操作

SparkStreaming之window滑动窗口应用,Spark Streaming提供了滑动窗口操作的支持,从而让我们可以对一个滑动窗口内的数据执行计算操作。每次掉落在窗口内的RDD的数据,会被聚合起来执行计算操作,然后生成的RDD,会作为window DStream的一个RDD。 网官图中所示,就是对每三秒钟的数据执行一次滑动窗口计算,这3秒内的3个RDD会被聚合起来进行处理,然后过了两秒...

qq_32253371的博客 266

Spark Streaming(三):DStream的transformation操作

收藏链接:https://www.jb51.net/article/163065.htm 1、updateStateByKey 作用 可以让我们为每个key维护一份state,并持续不断的更新该state; 使用 1、首先,要定义一个state,可以是任意的数据类型; 2、其次,要定义state更新函数——指定一个函数如何使用之前state和新值来更新state; ...

liuxiangke0210的专栏 546

Spark Streaming

spark streaming底层原理。window窗口操作二。

a_black03的博客 542

spark streaming 程序学习笔记

spark streaming 学习笔记 StreamingContext: spark streaming 程序必须创建 StreamingContext对象,她是流处理操作的主入口, new StreamingContext(sparkContext, Seconds(durat...

144

Spark Streaming ------ Window窗体相关操作

声明:本文已对原博客适当添改(亲测有效),便于本人理解。可通过底部链接访问原博客。 Spark Streaming之window滑动窗口应用,Spark Streaming提供了滑动窗口操作的支持,从而让我们可以对一个滑动窗口内的数据执行计算操作。每次掉落在窗口内的RDD的数据,会被聚合起来执行计算操作,然后生成的RDD,会作为window DStream的一个RDD。 网官图中所示,就是对每...

https://blog.youkuaiyun.com/sinat_36710456 1816

Spark Streaming Window窗体相关操作

SparkStreaming之window滑动窗口应用,Spark Streaming提供了滑动窗口操作的支持,从而让我们可以对一个滑动窗口内的数据执行计算操作。每次掉落在窗口内的RDD的数据,会被聚合起来执行计算操作,然后生成的RDD,会作为window DStream的一个RDD。 网官图中所示,就是对每三秒钟的数据执行一次滑动窗口计算,这3秒内的3个RDD会被聚合起来进行处理,然后...

s297485987的专栏 291

Spark Streaming transform以及广告计费日志实时黑名单过滤+window滑动窗口以及热点搜索词滑动统计...

一.transform以及广告计费日志实时黑名单过滤案例实战 transform操作,应用在DStream上时,可以用于执行任意的RDD到RDD的转换操作。它可以用于实现,DStream API中所没有提供的操作。比如说,DStream API中,并没有提供将一个DStream中的每个batch,与一个特定的RDD进行join的操作。但是我们自己就可以使用transform操作来实现该功能。 D...

Transkai 149

Spark学习笔记:Spark Streaming算子开发实例

Spark Streaming算子开发实例

lrxcmwy2的博客 1054
上一篇: Hive中的各种join关系和使用
下一篇: MapReduce实现倒排索引(Inverted Index)
Running-小猛
博客等级 码龄11年 52粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值