Spark-Accumulator
Spark中的累加器是用于在分布式计算中进行全局统计的工具。它以用于累积一些数据,比如计数器或求和器。

累加器主要用于在集群中的所有任务完成后,合并这些任务的结果。

Spark支持多种类型的累加器,例如整数和浮点数,但要注意,它们只能由驱动程序读取,任务节点不能修改累加器的值。


累加器的"只写"特性
累加器在Spark中被设计为"只写"的。累加器的值只能被添加或更新,而不能被直接读取。
- 
写入操作 :
累加器的值只能通过
add方法在分布式任务中更新。scalaaccumulator.add(5)这种设计确保了累加器在多个任务并行执行时的线程安全和一致性。
 - 
读取操作 :
累加器的最终值只能在驱动程序中读取,而不是在分布式任务中。
scalaprintln(s"Accumulator value: ${accumulator.value}")这种设计是为了避免任务中的中间计算结果对累加器的读取,确保累加器的值只在任务执行结束后被汇总和读取。
 
            
            
              scala
              
              
            
          
          var errorLines = sc.accumulator(0, "Error Lines")
sc.textFike("file.txt").foreach { line =>
    
	----   process lines ----
	
    if( error )
	    errorLines += 1
}
println(s"Lines with Bugs=${errorLines.value}");
        