[Scala进阶]-- Spark累加器(单例模式应用)

68 篇文章 4 订阅
本文深入探讨了如何在Spark中利用Scala的单例模式创建累加器,通过实例展示了累加器的使用,帮助理解其在分布式计算中的作用。
摘要由CSDN通过智能技术生成

一、举例创建单例模式的累加器


import org.apache.spark.{Accumulator, SparkContext}

/**
  * Created by root on 20170618.
  * Update date:
  * Time: 12:04 PM
  *
  */
object SuccessRecordCounter {
  @volatile private var instance: Accumulator[Long] = null //共享变量

  def getInstance(sc: SparkContext): Accumulator[Long] = {
    if (instance == null) {
      synchronized {
        if (instance == null) {
          instance = sc.accumulator(0L, "SuccessRecordCounter")
        }
      }
    }
    instance
  }
}

 

 

二、使用

val successCounter = SuccessRecordCounter.getInstance(rdd.sparkContext)
successCounter.a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

往事随风ing

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

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

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

打赏作者

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

抵扣说明:

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

余额充值