【Spark 实战系列】SparkStreaming 累加器的使用

本文介绍了SparkStreaming中累加器的使用,包括其作用、如何创建与使用,以及在批处理和流处理场景下的示例。同时,讨论了累加器的限制,如只能在Driver端定义和读取,以及在Transformation中使用时可能存在的问题。文章还提到了自定义累加器的实现,强调了累加器在统计任务中的应用。
摘要由CSDN通过智能技术生成

SparkStreaming 累加器的使用

最近有同学问我累计器的用法,今天就用 spark 和 flink 各写一个 demo, 其实累计器的场景还是非常多的,比如我们要统计黑名单中数据出现的次数,或者是统计程序处理成功了多少数据,失败了多少数据,所以使用好累计器还是很有必要的.

累计器

累加器(accumulator)是Spark中提供的一种分布式的变量机制,其原理类似于mapreduce,即分布式的改变,然后聚合这些改变。累加器的一个常见用途是在调试时对作业执行过程中的事件进行计数。累加器是仅仅被相关操作累加的变量,因此可以在并行中被有效地支持。它可以被用来实现计数器和总和。Spark原生地只支持数字类型的累加器,编程者可以添加新类型的支持。如果创建累加器时指定了名字,可以在Spark的UI界面看到。累加器通过对一个初始化了的变量v调用SparkContext.accumulator(v)来创建。

在集群上运行的任务可以通过add或者”+=”方法在累加器上进行累加操作。但是,它们不能读取它的值。只有驱动程序能够读取它的值,通过累加器的value方法。

Spark提供的Accumulator,主要用于多个节点对一个变量进行共享性的操作。Accumulator只提供了累加的功能,只能累加,不能减少。累加器只能在Driver端构建,并只能从Driver

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JasonLee实时计算

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值