PySpark: задание прерывается из-за сбоя этапа, но сброс максимального размера не распознается - PullRequest
0 голосов
/ 14 февраля 2020

Я пытаюсь отобразить фрейм данных в PySpark после чтения файлов с помощью функции / подпрограммы. Чтение файлов очень хорошо работает, но не работает дисплей. На самом деле, из-за ленивой оценки, это может быть неверно.

Я получаю эту ошибку

SparkException: Job aborted due to stage failure: Total size of serialized results of 29381 tasks (4.0 GB) is bigger than spark.driver.maxResultSize (4.0 GB)

, поэтому я делаю то, что было предложено https://forums.databricks.com/questions/66/how-do-i-work-around-this-error-when-using-rddcoll.html

sqlContext.setConf("spark.driver.maxResultSize", "8g")
sqlContext.getConf("spark.driver.maxResultSize")

однако, странная часть, эта возвращает ту же ошибку , когда я повторно запускаю команду display(df).

Как будто Spark просто игнорирует мои команды .

Я пытался увеличить количество работников и увеличить как тип работника, так и тип драйвера, но ни один из них ничего не исправил.

Как я могу заставить это работать? или это ошибка в Databricks / Spark?

1 Ответ

0 голосов
/ 14 февраля 2020

Все зависит от вашего кода и разбиения кода по размеру кластера. Увеличение spark.driver.maxResultSize - это первый вариант решения проблемы и, в конечном итоге, поиска постоянного решения для изменения кода или дизайна. Пожалуйста, не собирайте больше данных на узел драйвера.

ИЛИ

Вам необходимо изменить этот параметр в конфигурации кластера. Go в настройках кластера, в разделе «Дополнительно» выберите «spark» и вставьте spark.driver.maxResultSize 0 (неограниченно) или в любое другое значение, которое вам подходит. Использование 0 не рекомендуется. Вы должны оптимизировать задание путем повторного разделения.

enter image description here

Для получения дополнительной информации см. « Конфигурации Spark - Свойства приложения ».

Надеюсь, это поможет. Дайте нам знать, если у вас есть какие-либо дополнительные вопросы.

...