【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

目录
相关文章
|
7天前
|
分布式计算 Java Apache
Apache Spark Streaming技术深度解析
【9月更文挑战第4天】Apache Spark Streaming是Apache Spark生态系统中用于处理实时数据流的一个重要组件。它将输入数据分成小批次(micro-batch),然后利用Spark的批处理引擎进行处理,从而结合了批处理和流处理的优点。这种处理方式使得Spark Streaming既能够保持高吞吐量,又能够处理实时数据流。
24 0
|
1月前
|
分布式计算 Apache 数据安全/隐私保护
流计算引擎数据问题之在 Spark Structured Streaming 中水印计算和使用如何解决
流计算引擎数据问题之在 Spark Structured Streaming 中水印计算和使用如何解决
38 1
|
1月前
|
分布式计算 资源调度 测试技术
“Spark Streaming异常处理秘籍:揭秘如何驯服实时数据流的猛兽,守护你的应用稳如泰山,不容错过!”
【8月更文挑战第7天】Spark Streaming 是 Apache Spark 中的关键组件,用于实时数据流处理。部署时可能遭遇数据问题、资源限制或逻辑错误等异常。合理处理这些异常对于保持应用稳定性至关重要。基础在于理解其异常处理机制,通过 DSC 将数据流切分为 RDD。对于数据异常,可采用 try-catch 结构捕获并处理;资源层面异常需优化 Spark 配置,如调整内存分配;逻辑异常则需加强单元测试及集成测试。结合监控工具,可全面提升应用的健壮性和可靠性。
58 3
|
3月前
|
分布式计算 Java Scala
如何处理 Spark Streaming 的异常情况?
【6月更文挑战第16天】如何处理 Spark Streaming 的异常情况?
172 56
|
2月前
|
分布式计算 监控 数据处理
Spark Streaming:解锁实时数据处理的力量
【7月更文挑战第15天】Spark Streaming作为Spark框架的一个重要组成部分,为实时数据处理提供了高效、可扩展的解决方案。通过其微批处理的工作模式和强大的集成性、容错性特性,Spark Streaming能够轻松应对各种复杂的实时数据处理场景。然而,在实际应用中,我们还需要根据具体需求和资源情况进行合理的部署和优化,以确保系统的稳定性和高效性。
|
2月前
|
分布式计算 Apache Spark
|
4月前
|
分布式计算 关系型数据库 MySQL
Spark编程实验四:Spark Streaming编程
Spark编程实验四:Spark Streaming编程
91 2
|
4月前
|
存储 消息中间件 分布式计算
Spark Streaming
Spark Streaming
55 1
|
4月前
|
分布式计算 大数据 数据处理
【Flink】Flink跟Spark Streaming的区别?
【4月更文挑战第17天】【Flink】Flink跟Spark Streaming的区别?
|
4月前
|
存储 分布式计算 Scala
bigdata-36-Spark转换算子与动作算子
bigdata-36-Spark转换算子与动作算子
38 0