Я хочу, чтобы моя программа драйвера Spark, написанная на Python, выводила некоторую базовую информацию о протоколировании. Есть три способа сделать это:
- Использование моста PySpark py4j для получения доступа к средству ведения журнала Java log4j, используемому Spark.
log4jLogger = sc._jvm.org.apache.log4j LOGGER = log4jLogger.LogManager.getLogger(__name__) LOGGER.info("pyspark script logger initialized")
-
Просто используйте стандартную консольную печать.
-
logging
стандартной библиотеки Python. Это кажется идеальным и наиболее питонским подходом, однако, по крайней мере из коробки, он не работает, и зарегистрированные сообщения не кажутся восстанавливаемыми. Конечно, это можно настроить для входа в систему py4j-> log4j и/или в консоль.
Итак, официальное руководство по программированию (https://spark.apache.org/docs/1.6.1/programming-guide.html) вообще не упоминает ведение журнала. Это разочаровывает. Должен быть стандартный документированный рекомендуемый способ входа из программы драйвера Spark.
искал эту проблему и обнаружил следующее: как мне войти из моего скрипта Python Spark
Но содержание этой темы было неудовлетворительным.
В частности, у меня есть следующие вопросы:
- Я скучаю по стандартному способу входа из программы драйвера PySpark?
- Есть ли плюсы/минусы при входе в py4j-> log4j против консоли?