Spark-Streaming

UpdateStateByKey

原语用于记录历史记录,有时,我们需要在 DStream 中跨批次维护状态

updateStateByKey()为我们提供了对一个状态变量的访问,用于键值对形式的 DStream

为使用这个功能,需要做下面两步:

  1. 定义状态,状态可以是一个任意的数据类型。

  2. 定义状态更新函数,用此函数阐明如何使用之前的状态和来自输入流的新值对状态进行更新。

使用 updateStateByKey 需要对检查点目录进行配置,会使用检查点来保存状态。

Window Operations

可以设置窗口的大小和滑动窗口的间隔来动态的获取当前 Steaming 的允许状态。

基于窗口的操作需要两个参数

1.窗口时长:计算内容的时间范围

2.滑动步长:隔多久触发一次计算

这两者都必须为采集周期大小的整数倍

DStream输出

输出操作指定了对流数据经转化操作得到的数据所要执行的操作

与 RDD 中的惰性求值类似,如果一个 DStream 及其派生出的 DStream 都没有被执行输出操作,那么这些 DStream 就都不会被求值

连接不能写在 driver 层面(序列化)

如果写在 foreach 则每个 RDD 中的每一条数据都创建,得不偿失;

增加 foreachPartition,在分区创建(获取)

相关推荐
西电研梦44 分钟前
稳扎稳打,25西电生命科学技术学院(考研录取情况)
大数据·考研·生物医学工程·西安电子科技大学
ICT_SOLIDWORKS1 小时前
智诚科技苏州SOLIDWORKS授权代理商的卓越之选
大数据·人工智能·科技·软件工程
24k小善2 小时前
FlinkUpsertKafka深度解析
java·大数据·flink·云计算
小名叫咸菜3 小时前
spark总结
spark
码熔burning3 小时前
【MQ篇】RabbitMQ之消息持久化!
java·分布式·rabbitmq·mq
caihuayuan43 小时前
【docker&redis】用docker容器运行单机redis
java·大数据·sql·spring·课程设计
Gvemis⁹3 小时前
Spark总结
大数据·分布式·spark
码熔burning4 小时前
【MQ篇】RabbitMQ之消费失败重试!
java·分布式·rabbitmq·mq
灵途科技4 小时前
NEPCON China 2025 | 具身智能时代来临,灵途科技助力人形机器人“感知升级”
大数据·人工智能
sky.fly4 小时前
思科路由器重分发(静态路由+OSPF动态路由+RIP动态路由)
大数据·网络·智能路由器