Удалить автозагрузку, чтобы изменить уровень журнала Spark - PullRequest
0 голосов
/ 18 октября 2019

Я запускаю скрипты Python (и тесты) с PySpark и хочу удалить ненужную информацию из журналов.

Каждый раз, когда я запускаю их, в консоли появляется следующее сообщение:

Установка уровня ведения журнала по умолчанию "WARN".

Для настройки уровня ведения журнала используйте sc.setLogLevel (newLevel). Для SparkR используйте setLogLevel (newLevel).

Как я могу полностью удалить его? (в идеале в log4j.properties )


Что я уже пробовал:

У меня log4j.rootCategory=ERROR, console установлено в log4j.properties.

Выполнение sc.setLogLevel(newLevel), как говорится в сообщении, работает только для следующих журналов, но не в начале сценария.

Установка log4j.logger.org.apache.spark=ERROR в log4j.properties не удаляет сообщение.

Я много искал для этого, но не могу найти соответствующую конфигурацию.


От Spark Github (в Logging.scala), я могувижу, что есть переменная silent для отображения сообщения, но я не могу найти, где оно изменено:

if (!silent) {
  System.err.printf("Setting default log level to \"%s\".\n", replLevel)
  System.err.println("To adjust logging level use sc.setLogLevel(newLevel). " +
    "For SparkR, use setLogLevel(newLevel).")
}

Заранее благодарен за любую помощь,

1 Ответ

1 голос
/ 18 октября 2019

Я нашел решение!

Непосредственно перед кодом, который я привел из Logging.scala , есть:

if (replLevel != rootLogger.getEffectiveLevel()) {
  if (!silent) {
     ...
  }
}

Что означает, что вместо попыткиизменив переменную silent, можно установить уровни журналирования для repl и root регистратора как отличающиеся в log4j.properties для достижения того же результата:

log4j.rootCategory=WARN, console
log4j.logger.org.apache.spark.repl.Main=ERROR

Вы также можете добавить log4j.logger.org.apache.spark=ERROR, чтобы удалить из Spark другие предупреждения, которые могут отображаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...