资讯专栏INFORMATION COLUMN

spark Dstreams-常见操作

IT那活儿 / 2323人阅读
spark Dstreams-常见操作

点击上方“IT那活儿”,关注后了解更多内容,不管IT什么活儿,干就完了!!!



01


转换操作


与RDD类似,转换允许修改输入数据流中的数据。数据流支持普通Spark RDD上的许多转换。
下面是一些常见的例子:


02


UpdateStateByKey 操作


UpdateStateByKey操作可以让你使用新信息不断更新状态的同时保持任意的状态,操作起来有两步:
1)定义状态-状态可以是任意数据类型;
2)定义状态更新函数-使用函数指定如何使用以前的状态和输入流中的新值更新状态。
在每个批次中spark将会对现有key应用状态更新函数,而不管他们是否在批次中有新数据,如果更新函数返回为none,则键值对会进行消除。
假设你想维护文本数据流中每个单词的运行计数,在这里运行计数是状态,他是一个整数,函数定义如下:
def updateFunction(newValues: Seq[Int], runningCount: Option[Int]): Option[Int] = {
val newCount = ... // add the new values with the previous running count to get the new count
Some(newCount)}
val runningCounts = pairs.updateStateByKey[Int](updateFunction _)
将为每个单词调用更新函数,newValues的序列为(word, 1)键值对,runningCount为序列的先前的计数。
请注意,使用updateStateByKey需要配置检查点目录。


03


Transform 操作


transform操作(和其延伸transformWith)允许任何RDD-to-RDD的函数应用于DStream,他可应用与任何未在数据流API公开的RDD操作,例如数据流中的每个批与另一个数据集连接的功能在DStream API中没有直接公开但是,你可以使用轻松的使用transform来实现这一点,这提供了非常强大的可能性。
例如,可以通过将输入流与垃圾邮件信息连接起来,然后根据这些进行数据过滤,从而进行实时数据清理。
请注意在每个批处理间隔中都会调用提供的函数,像时变RDD操作,分区数,广播变量等可以再批之间进行修改。


04


窗口操作


Spark streaming提供了窗口操作,窗口操作允许你在滑动数据窗口中应用转换,示意图:
如图所示,每次窗口在源数据流上滑动时,位于窗口内的源RDD将被组合并操作,以生成窗口化数据流的RDD。在这种特定情况下,该操作应用于数据的最后3个时间单位,并按2个时间单位滑动。
这表明任何窗口操作都需要指定两个参数。
1)Window length:窗口长度;
2)Sliding interval:执行窗口操作的时间间隔。
这两个参数必须是源数据批间隔的倍数。
举一个例子来说明窗口操作,假如你想统计过去30秒的单词统计结果,窗口每10秒滑动一次,那么可以这样写:
下面是一些常用的window操作,所有这些操作都包括两个参数(windowLength,slideInterval):



本文作者:潘宗昊

本文来源:IT那活儿(上海新炬王翦团队)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129614.html

相关文章

  • SparkStreaming概述

    摘要:但在企业中存在很多实时性处理的需求,例如双十一的京东阿里,通常会做一个实时的数据大屏,显示实时订单。这种情况下,对数据实时性要求较高,仅仅能够容忍到延迟分钟或几秒钟。1 Spark Streaming是什么它是一个可扩展,高吞吐具有容错性的流式计算框架吞吐量:单位时间内成功传输数据的数量之前我们接触的spark-core和spark-sql都是处理属于离线批处理任务,数据一般都是在固定位置上...

    Tecode 评论0 收藏0
  • Spark Streaming学习笔记

    摘要:输入和接收器输入代表从某种流式数据源流入的数据流。文件数据流可以从任何兼容包括等的文件系统,创建方式如下将监视该目录,并处理该目录下任何新建的文件目前还不支持嵌套目录。会被一个个依次推入队列,而则会依次以数据流形式处理这些的数据。 特点: Spark Streaming能够实现对实时数据流的流式处理,并具有很好的可扩展性、高吞吐量和容错性。 Spark Streaming支持从多种数...

    陆斌 评论0 收藏0
  • Spark入门阶段一之扫盲笔记

    摘要:同时集成了机器学习类库。基于计算框架,将的分布式计算应用到机器学习领域。提供了一个简单的声明方法指定机器学习任务,并且动态地选择最优的学习算法。宣称其性能是的多倍。 介绍 spark是分布式并行数据处理框架 与mapreduce的区别: mapreduce通常将中间结果放在hdfs上,spark是基于内存并行大数据框架,中间结果放在内存,对于迭代数据spark效率更高,mapred...

    starsfun 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<