Мое искровое приложение уже давно запущено.
Сцена застряла в 199/200, как показано на рисунке.
![enter image description here](https://i.stack.imgur.com/c1RB2.png)
Когда я нажал на сцену и посмотрел ее задачи.Я обнаружил, что две задачи занимали очень много времени, и их размер чтения в случайном порядке и разлив в случайном порядке (память) намного больше, чем у других исполнителей.
![enter image description here](https://i.stack.imgur.com/5tGbL.png)
Это имеетдва кадра данных:
large_df.cache,
small_df.cache
преобразования:
val df = large_df.join(broadcast(small_df))
df.filter(...)
действие:
final_df.cache
final_df.count
final_df.save(...)
интересно, когда я добавляю "small_df.count" after small.cache
, сцена не будетзастрять и размер чтения в случайном порядке даже среди всех исполнителей.
Вопросы:
- Кто-нибудь понимает этот трюк?
- Использует ли Shuffle spill (memory) память выполнения исполнителя?
- Какая связь междуперемешать чтение, перемешать запись и перемешать разлив?