Как сохранить RDD постоянным и последовательным? - PullRequest
0 голосов
/ 26 августа 2018

У меня есть следующий код (упрощение для сложной ситуации):

val newRDD = prevRDD.flatMap{a =>
    Array.fill[Int](scala.util.Random.nextInt(10)){scala.util.Random.nextInt(2)})
}.persist()
val a = newRDD.count
val b = newRDD.count

и даже то, что СДР должен быть постоянным (и, следовательно, непротиворечивым), a и b не идентичныв большинстве случаев.

Есть ли способ сохранить согласованность результатов первого действия, поэтому, когда будет вызвано второе «действие», будут возвращены результаты первого действия?

* Редактировать *

Проблема, которая у меня возникла, по-видимому, вызвана методом zipWithIndex в моем коде, который создает индексы выше, чем количество.Я спрошу об этом в другой ветке.Спасибо

1 Ответ

0 голосов
/ 27 августа 2018

Невозможно убедиться, что 100% согласовано.

Когда вы вызываете persist, он попытается кэшировать все разделы в памяти, если он подходит. В противном случае будут пересчитаны разделы, которые не помещаются в памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...