spark进阶(八): spark streaming用法[下] Structured Streaming使用

Spark 2.0引入的Structured Streaming是基于Dataset/DataFrame的流处理框架,提供低延迟、可伸缩和容错的处理能力。它支持微批处理和连续处理模式,允许开发者以类似批处理的方式编写流处理代码。文章介绍了Structured Streaming的基本使用,如添加依赖、创建SparkSession、从Kafka读取数据并进行单词统计。此外,还详细讲解了输出模式,包括完全模式、追加模式和更新模式,以及不同的外部存储选项,如文件、Kafka、控制台和内存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spark 2.0产生了一个新的流处理框架Structured Streaming(结构化流),它是一个可伸缩的、容错的流处理引擎,构建在Spark SQL引擎之上。使用StructuredStreaming可以在静态数据(Dataset/DataFrame)上像批处理计算一样进行流式计算。随着数据的不断到达,Spark SQL引擎会增量地、连续地对其进行处理,并更新最终结果。

简单来讲就是DSteam是基于RDD的DSteam,Structured Streaming是基于Dataset(DataFrame)的。

默认情况下,Structured Streaming使用微批处理引擎将数据流作为一系列小批次作业进行处理,从而实现端到端的延迟低至100毫秒。而自Spark 2.3以来,引入了一种新的低延迟处理模式,称为连续处理,它将端到端的延迟进一步降低至1毫秒。对于开发者来说,不需要考虑是流式计算还是批处理,只要以同样的方式编写计算操作即可,Structured Streaming在底层会自动实现快速、可伸缩、容错等处理。

一、简单使用

添加依赖:

<dependency>
  <groupId>org.apache.spark</groupId>
  <artifactId>spark-sql-kafka-0-10_2.12</artifactId>
  <version>3.1.2</version>
</dependency>

测试代码:

/**
 * @author: ffzs
 * @Date: 2021/10/10 下午1:21
 */
object StructuredStreaming {
   
   
  def main(args: Array[String]): Unit 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值