org.apache.spark

Accumulator

class Accumulator[T] extends Accumulable[T, T]

A simpler value of Accumulable where the result type being accumulated is the same as the types of elements being merged, i.e. variables that are only "added" to through an associative operation and can therefore be efficiently supported in parallel. They can be used to implement counters (as in MapReduce) or sums. Spark natively supports accumulators of numeric value types, and programmers can add support for new types.

An accumulator is created from an initial value v by calling SparkContext#accumulator. Tasks running on the cluster can then add to it using the Accumulable#+= operator. However, they cannot read its value. Only the driver program can read the accumulator's value, using its value method.

The interpreter session below shows an accumulator being used to add up the elements of an array:

scala> val accum = sc.accumulator(0)
accum: spark.Accumulator[Int] = 0

scala> sc.parallelize(Array(1, 2, 3, 4)).foreach(x => accum += x)
...
10/09/29 18:41:08 INFO SparkContext: Tasks finished in 0.317106 s

scala> accum.value
res2: Int = 10
T

result type

Linear Supertypes
Accumulable[T, T], Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Accumulator
  2. Accumulable
  3. Serializable
  4. AnyRef
  5. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Accumulator(initialValue: T, param: AccumulatorParam[T])

  2. new Accumulator(initialValue: T, param: AccumulatorParam[T], name: Option[String])

    initialValue

    initial value of accumulator

    param

    helper object defining how to add elements of type T

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. def ++=(term: T): Unit

    Merge two accumulable objects together

    Merge two accumulable objects together

    Normally, a user will not want to use this version, but will instead call +=.

    term

    the other R that will get merged with this

    Definition Classes
    Accumulable
  5. def +=(term: T): Unit

    Add more data to this accumulator / accumulable

    Add more data to this accumulator / accumulable

    term

    the data to add

    Definition Classes
    Accumulable
  6. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  7. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  8. def add(term: T): Unit

    Add more data to this accumulator / accumulable

    Add more data to this accumulator / accumulable

    term

    the data to add

    Definition Classes
    Accumulable
  9. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  10. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  11. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  12. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  13. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  14. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  15. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  16. val id: Long

    Definition Classes
    Accumulable
  17. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  18. def localValue: T

    Get the current value of this accumulator from within a task.

    Get the current value of this accumulator from within a task.

    This is NOT the global value of the accumulator. To get the global value after a completed operation on the dataset, call value.

    The typical use of this method is to directly mutate the local value, eg., to add an element to a Set.

    Definition Classes
    Accumulable
  19. def merge(term: T): Unit

    Merge two accumulable objects together

    Merge two accumulable objects together

    Normally, a user will not want to use this version, but will instead call add.

    term

    the other R that will get merged with this

    Definition Classes
    Accumulable
  20. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  21. final def notify(): Unit

    Definition Classes
    AnyRef
  22. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  23. def setValue(newValue: T): Unit

    Set the accumulator's value; only allowed on master

    Set the accumulator's value; only allowed on master

    Definition Classes
    Accumulable
  24. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  25. def toString(): String

    Definition Classes
    Accumulable → AnyRef → Any
  26. def value: T

    Access the accumulator's current value; only allowed on master.

    Access the accumulator's current value; only allowed on master.

    Definition Classes
    Accumulable
  27. def value_=(newValue: T): Unit

    Set the accumulator's value; only allowed on master.

    Set the accumulator's value; only allowed on master.

    Definition Classes
    Accumulable
  28. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  29. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  30. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  31. val zero: T

    Definition Classes
    Accumulable

Inherited from Accumulable[T, T]

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped