Мое искровое приложение состоит из начального RDD, на котором я выполняю 10 преобразований. DAG для этого искрового применения является полностью линейным. Если бы мне было интересно получить число записей в СДР после первых 5 преобразований, нужно ли мне его кэшировать, чтобы избежать повторного вычисления СДР с самого начала?
Я знаю, что если вы выполняете 2 разных преобразования для одного и того же RDD, вам необходимо кэшировать исходный RDD для предотвращения повторного вычисления. Мой вопрос: если вы выполняете одно действие и одно преобразование на одном и том же RDD, вам все еще нужно кэшировать?
Например,
val rdd2 = initalRDD.map(<something>)
val rdd3 = rdd2.map(<something>)
println(rdd3.count)
val rdd4 = rdd3.map(<something>)
Нужен ли rdd3 кэш, чтобы избежать повторного вычисления, поскольку он выполняет как подсчет, так и отображение?