【Spark Streaming】(三)DStream 算子详解

简介: 【Spark Streaming】(三)DStream 算子详解

文章目录


一、前言


二、Transformations on DStreams


三、 Window Operations(窗口操作)


四、Output Operations on DStreams(输出操作)


一、前言


Spark Streaming是核心Spark API的扩展,它支持对实时数据流进行可伸缩、高吞吐量和容错的流处理。数据可以从Kafka、Flume、Kinesis或TCP套接字等多个源获取,也可以使用map、reduce、join和window等高级函数表示的复杂算法进行处理。最后,可以将处理过的数据推送到文件系统、数据库和实时仪表板。事实上,您可以将Spark的机器学习和图形处理算法应用于数据流。

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-streaming_2.11</artifactId>
    <version>2.4.0</version>
</dependency>


离散流或DStream是Spark Streaming提供的基本抽象。它表示连续的数据流,无论是从源接收的输入数据流,还是通过转换输入流生成的经过处理的数据流。在内部,DStream由一系列连续的RDDs表示,RDDs是Spark对不可变的分布式数据集的抽象。DStream中的每个RDD都包含来自某个时间间隔的数据。在内部,DStream表示为RDDs序列。


DStream中的算子分为两大类:Transformations 和Output


二、Transformations on DStreams


与RDDs类似,转换允许修改来自输入DStream的数据。DStreams支持普通Spark RDD上可用的许多转换。下面是一些常见的算子。


image.png


三、 Window Operations(窗口操作)


Spark Streaming还提供了窗口计算,允许你在滑动的数据窗口上应用转换。

如图所示:


image.png


每当窗口滑过源DStream时,属于该窗口的源RDDs就被组合起来并对其进行操作,从而生成窗口化DStream的RDDs。在这种特定的情况下,操作应用于最后3个时间单位的数据,并以2个时间单位进行幻灯片显示。这表明任何窗口操作都需要指定两个参数:


(1).窗口长度(windowLength)-窗口的持续时间(图中为3)。

(2).滑动间隔(slideInterval)——执行窗口操作的间隔(图中为2)。


这两个参数必须是批处理间隔的倍数.


一些常见的窗口操作如下所示。所有这些操作都使用上述两个参数——windowLength和slideInterval。


image.png


示例请参考官网:

http://spark.apache.org/docs/latest/streaming-programming-guide.html

目录
相关文章
|
2月前
|
分布式计算 并行计算 大数据
Spark学习---day02、Spark核心编程(RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(一)
Spark学习---day02、Spark核心编程 RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(一)
122 1
|
18天前
|
分布式计算 Java Scala
如何处理 Spark Streaming 的异常情况?
【6月更文挑战第16天】如何处理 Spark Streaming 的异常情况?
106 56
|
2月前
|
分布式计算 Java Scala
Spark学习---day03、Spark核心编程(RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(二)
Spark学习---day03、Spark核心编程(RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(二)
|
2月前
|
分布式计算 关系型数据库 MySQL
Spark编程实验四:Spark Streaming编程
Spark编程实验四:Spark Streaming编程
65 2
|
2月前
|
存储 消息中间件 分布式计算
Spark Streaming
Spark Streaming
37 1
|
2月前
|
分布式计算 大数据 数据处理
【Flink】Flink跟Spark Streaming的区别?
【4月更文挑战第17天】【Flink】Flink跟Spark Streaming的区别?
|
2月前
|
存储 分布式计算 API
adb spark的lakehouse api访问内表数据,还支持算子下推吗
【2月更文挑战第21天】adb spark的lakehouse api访问内表数据,还支持算子下推吗
117 2
|
2月前
|
分布式计算 Hadoop Java
Spark【基础知识 03】【RDD常用算子详解】(图片来源于网络)
【2月更文挑战第14天】Spark【基础知识 03】【RDD常用算子详解】(图片来源于网络)
76 1
|
2月前
|
存储 分布式计算 Scala
bigdata-36-Spark转换算子与动作算子
bigdata-36-Spark转换算子与动作算子
14 0
|
2月前
|
分布式计算 并行计算 Hadoop
Spark学习---day02、Spark核心编程(RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(一)
Spark学习---day02、Spark核心编程 RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(一)