Що означає "Пропущений етап" у веб-інтерфейсі Apache Spark?


Відповіді:


123

Зазвичай це означає, що дані були отримані з кешу, і не було необхідності повторно виконувати даний етап. Це узгоджується з вашим DAG, який показує, що наступний етап вимагає перемішування ( reduceByKey). Щоразу, коли відбувається перетасовка, Spark автоматично кешує створені дані :

Перетасовка також генерує велику кількість проміжних файлів на диску. Починаючи з Spark 1.3, ці файли зберігаються до тих пір, поки відповідні RDD більше не використовуються і не збираються сміття. Це робиться для того, щоб файли перетасовки не потрібно було створювати заново, якщо лінія повторно обчислюється.


21
Чудова відповідь. Якщо ви хочете дізнатись набагато більше про семантику етапів "пропущеного" та "очікування" у веб-інтерфейсі, перегляньте github.com/apache/spark/pull/3009 , запит на витяг, який вперше ввів ці поняття. Цей PR - це також цікаве читання, якщо вам цікаво, як пропущені / очікувані етапи взаємодіють із смугами прогресу на рівні роботи.
Джош Розен

1
Якщо я правильно стежу, Spark пропускаючи це означає, що вони не відбуваються, і їх можна видалити з коду разом? або код дуже ефективний з кешем, тож залишити його? @ zero323
SparkleGoat

1
@SparkleGoat Ні. Це означає, що ці етапи були оцінені раніше, і результат доступний без повторного виконання.
10465355 говорить Reinstate Monica

інше питання, чи можуть етапи кешування та пропуску зробити вихідні дані різними?
SparkleGoat

@SparkleGoat, відсутність кешування (і пропуск через це) є внутрішньою іскровою оптимізацією і жодним чином не змінює вихідні дані.
Раві Санвал
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.