Вы можете попробовать другое решение без необходимости использования изменяемого счетчика. Преобразование zipWithIndex
обеспечивает стабильную индексацию, нумерацию каждого элемента в исходном порядке.пример:
val myRdd = RDD(1,2,3)
val zippedWithIndex = myRdd.zipWithIndex // ((1,0),(2,1),(3,2))
После этой первой трансформации вы можете перевернуть индекс и значение
val result = zippedWithIndex.map{case (index,value) => (value,index)} // ((0,1),(1,2),(2,3))