Я создаю PairRDD, который содержит вектор.Apache Spark RDD - не обновляется
var newRDD = oldRDD.mapValues(listOfItemsAndRatings => Vector(Array.fill(2){math.random}))
Позже я обновить RDD:
newRDD.lookup(ratingObject.user)(0) += 0.2 * (errorRate(rating) * myVector)
Однако, несмотря на то, что выводит обновленный вектор (как показано на консоли), когда я в следующий раз позвонить newRDD
я могу видеть Векторное значение изменилось. Через тестирование я пришел к выводу, что он изменился на то, что дается math.random
- так как каждый раз я звоню newRDD
Вектор меняется. Я понимаю, что есть граф линии, и, возможно, это имеет к этому какое-то отношение. Мне нужно обновить Vector, хранящийся в RDD, до новых значений, и мне нужно сделать это несколько раз.
Спасибо.
новый RDD - это RDD и не подлежит определению по определению. Я думаю, вы не можете изменять значения внутри Vector в своем RDD. –