Каковы уровни персистентности по умолчанию для методов RDD persist () и cache () в Apache Spark - PullRequest
0 голосов
/ 26 сентября 2018

1.Что такое уровень постоянства по умолчанию для cache() в Apache Spark в Python

MEMORY_ONLY
MEMORY_ONLY_SER
MEMORY_AND_DISK
MEMORY_AND_DISK_SER

2.В соответствии с книгой "Learning Spark", persist() Уровни сохранения по умолчанию составляют MEMORY_ONLY_SER это правильно?

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Это 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

0 голосов
/ 26 сентября 2018

Какую версию Apache Spark вы используете?Предположим, что вы используете самую последнюю версию (2.3.1):

Что касается документации Python для документации Spark RDD Persistence , уровень хранения при вызове cache() и persist()методы это MEMORY_ONLY.

По умолчанию для хранения СДР используется только память.

Кроме того, если вы указываете версию Apache Spark, которую вы используете, или версию, на которую ссылается книга «Learning Spark»,мы могли бы помочь вам лучше.

...