Structured Streaming

Structured Streaming采用无边界数据表概念,通过Spark SQL引擎进行实时数据分析。数据按时间间隔处理,输出结果同样以表的形式保存。三种输出模式包括:完全模式、附加模式和更新模式。该模型在事件时间处理上表现优越,例如1分钟窗口、10秒滑动的聚合操作。相较于Spark Streaming,Structured Streaming提供更高级的API,延迟更低,且更好地支持事件时间处理,但当前仍有待完善。
摘要由CSDN通过智能技术生成

Structured Streaming:基于spark sql引擎实现实时数据分析
在structured Streaming模型中,把数据看成无边界的关系型的数据表,每个数据都是表中的一行。将输入的数据流按照时间间隔(以一秒为例)划分成数据段,每秒都会把新输入的数据添加到表中,输出的结果也是表的形式,可以将表写入硬盘或者HDFS
在这里插入图片描述
三种输出模式:
1、完全模式:将整个更新过的输出表都写入外部存储;
2、附加模式:上一次触发之后新增加的行才会被写入外部存储。如果老数据有改动则不适合这个模式;
3、更新模式:上一次触发之后被更新的行才会被写入外部存储

Structured Streaming 不会完全存储输入数据。每个时间间隔都会读取最新的输入,进行处理,更新输出表,然后把这次的输入删除。

该模型在根据事件时间处理数据时十分方便

words = ...  # 这个 DataFrame 代表词语的数据流,schema 是 { timestamp: Timestamp, word: String}


windowedCounts = words.groupBy(
   window(words.timestamp, "1 minute", "10 seconds"),
   words.word
).count()
.sort(desc("count"))
.limit(10)

创建了一个窗口长度为1分钟,滑动间隔为10秒的window&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值