【发布时间】:2020-07-06 09:50:13
【问题描述】:
我想在每次脚本运行结束时导出一个日志文件,其中只有我在使用 Pyspark 时的打印语句。
到目前为止,我设法将我的打印语句记录到 log4j 中,我可以使用集群中的 logging 参数指定日志导出路径(在集群配置中)并使用下面的代码导出到 S3。但是,我也收到了很多我不感兴趣的额外消息。使用:
log4jLogger = sc._jvm.org.apache.log4j
LOGGER = log4jLogger.LogManager.getLogger(__name__)
sc.setLogLevel("INFO")
LOGGER.info("pyspark script logger initialized")
我明白了:
20/07/06 09:45:37 INFO DriverCorral: DBFS health check ok
20/07/06 09:45:49 INFO DriverCorral: Metastore health check ok
20/07/06 09:46:05 INFO ProgressReporter$: Added result fetcher for ...
20/07/06 09:46:05 INFO __main__: pyspark script logger initialized
20/07/06 09:46:05 INFO ProgressReporter$: Removed result fetcher for ...
基本上,我只想在我的日志中打印:
20/07/06 09:46:05 INFO __main__: pyspark script logger initialized
【问题讨论】:
-
不确定是否可以这样做,但您可以尝试将日志级别设置为 WARN 并在 WARN 级别打印您的消息,除了您的消息之外,只会显示警告。
-
您可以尝试禁用不需要的记录器。像这样:
dc_logger = getLogger('DriverCorral') dc_logger.disabled = true -
你能检查一下下面的python logger模块吗?