Странное узкое место при записи на паркете - PullRequest
1 голос
/ 20 июня 2020

Я вроде новичок в Spark. В настоящее время я получаю очень странно медленную запись паркета на amazon s3 после того, как моя искровая калибровка c закончилась.

На запись небольшого файла ушло 1,8 часа (при записи было 2 раздела)

enter image description here

Я запустил ту же самую искровую калибровку c с другим БОЛЬШИМ файлом (больше строк + больше столбцов) (при записи было 3 раздела)

enter image description here

Сам вызов записи: df.write.mode("overwrite").parquet(key)

Я попытался посмотреть планы SQL, и они не выглядят иначе. Даже если медлительность связана с различиями в файлах, я не ожидал, что один будет менее 1 мин, а другой> 1,5 часа.

Для моего медленного файла я удалил паркетные записи, и общее c время изменилось с 2,6 часа до 1 часа, поэтому я не думаю, что в конце выполнялся ленивый eval, который вызывал он замедляется.

Ребята, у вас есть предложения, что исследовать? Я попытался проверить DAG и вкладку SQL сервера истории, но не вижу ничего особенного. Количество исполнителей осталось прежним. Основная разница, которую я вижу, у более крупного и быстрого файла было 3 задачи при написании паркета, но каждая задача обрабатывала больше строк и байтов, чем более медленный файл меньшего размера.

...