Chcę, aby mój program sterownika Spark, napisany w Pythonie, wyprowadził kilka podstawowych informacji rejestracyjnych. Mogę to zrobić na trzy sposoby:Rejestrowanie PySpark?
- Korzystanie z mostka PySpark py4j w celu uzyskania dostępu do narzędzia do logowania log4j używanego przez firmę Spark.
log4jLogger = sc._jvm.org.apache.log4j LOGGER = log4jLogger.LogManager.getLogger(__name__) LOGGER.info("pyspark script logger initialized")
wystarczy użyć standardowego drukiem konsoli.
Moduł biblioteki standardowej Python. Wydaje się to idealne i najbardziej Pythoniczne podejście, jednak co najmniej z pudełka, to nie działa, a logowane wiadomości nie wydają się być odzyskiwane. Oczywiście można to skonfigurować do logowania do py4j-> log4j i/lub do konsoli.
Oficjalny podręcznik programowania (https://spark.apache.org/docs/1.6.1/programming-guide.html) w ogóle nie wspomina o rejestrowaniu. To rozczarowuje. Powinien istnieć standardowy udokumentowany zalecany sposób logowania z programu sterownika Spark.
szukał tego problemu i znalazłem to: How do I log from my Python Spark script
Ale zawartość tego wątku były niezadowalające.
Konkretnie mam następujące pytania:
- jestem brakuje standardowy sposób logowania z programu sterownika PySpark?
- Czy są jakieś plusy i minusy logowania się do py4j-> log4j kontra konsoli?
Czy kiedykolwiek otrzymałeś odpowiedź na to pytanie? Wydaje mi się, że 1 to jedyne rozwiązanie. 2 nie działało dla mnie (byłem tym zaskoczony). Patrząc na inne pytanie, z którym się łączyłeś, nie uważam, że 'logging.getLogger ('py4j') działa, ponieważ py4j nie używa log4j logger, używa java.utils.logger. – dragonx
Wniosek, do jakiego doszedłem, to że Spark zasadniczo nie zamierza wykonywać niestandardowych zadań Sparka w celu ich własnego logowania. Zazwyczaj piszesz program sterujący, który koduje dość prosty przepływ pracy, a sam Spark wykonuje ciężki lifting i zapewnia różne narzędzia do monitorowania i diagnostyki. – clay
Czy przesyłasz '.py' do klastra lub do samodzielnego komputera? Czy chcesz rejestrować zdarzenia od każdego pracownika lub tylko od klienta? – jocerfranquiz