Это MEMORY_ONLY сейчас.Извлечь исходный код в Scala, но просто:
def cache(): this.type = persist()
def persist(): this.type = persist(StorageLevel.MEMORY_ONLY)
def persist(newLevel: StorageLevel): this.type = {
// doing stuff...
}
Уровень хранилища, который вы должны использовать, зависит от самого RDD.Например, когда у вас недостаточно ОЗУ и уровень MEMORY_ONLY, вы потеряете данные и вам придется заново вычислять с самого начала.Или, если это MEMORY_AND_DISK, у вас по-прежнему будет резервная копия на диске, и вы сможете читать ее с жесткого диска.
Таким образом, в большинстве случаев пересчет этих данных происходит быстрее, чем чтение с диска (иВы должны записать его на диск при сохранении, что еще медленнее).Вот почему MEMORY_ONLY является значением по умолчанию.
И различия уровней можно найти в официальном руководстве.https://spark.apache.org/docs/latest/rdd-programming-guide.html#rdd-persistence