首页 > 解决方案 > 只在日志 pyspark 中写我自己的消息

问题描述

我想在每次运行脚本结束时导出一个日志文件,其中只有我在使用 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

标签: pythonloggingpyspark

解决方案


你能试试下面的 Python Logger 模块吗

import logging

logger = logging.getLogger(__name__)
logger.info('pyspark script logger initialized.')

推荐阅读