Всегда получая значение Аккумулятора как 0.
package com.fast.processing.data
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
object AccumulatorExample {
def main(args:Array[String]){
val spark = new SparkConf().setAppName("AccumulatorExample").setMaster("local")
val sc = new SparkContext(spark)
val data = sc.textFile("C:\\Users\\SportsData.txt")
val badLines = sc.accumulator(0,"badLines");
val datVal = data.foreach(line =>(line.split(",").map{x=>{
if(x(0).toInt < 0) badLines +=1
}
}
) )
println("Val of bad lines is:::"+badLines)
}
}
Ниже приведены данные, и я ожидаю, что значение накопителя равно 4, так как каждая строка имеет первое значение меньше 0.
-1,10,India,2019,01-01-2019,Cricket,5,6,7,18
-2,11,Japan,2018,01-01-2018,Football,6,6,6,18
-3,12,China,2017,01-01-2017,Tennis,7,7,7,21
-4,13,India,2018,01-01-2017,Swimming,8,8,8,24
A5,14,Bhutan,2019,01-01-2017,Swimming,5,5,5,25
A5,14,Bhutan,2019,01-01-2017,Swimming,5,5,5,25
A5,14,Bhutan,2019,01-01-2017,Swimming,5,5,5,25
A5,14,Bhutan,2019,01-01-2017,Swimming,5,5,5,25
- Элемент списка