python - 只在日志 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
解决方案
你能试试下面的 Python Logger 模块吗
import logging
logger = logging.getLogger(__name__)
logger.info('pyspark script logger initialized.')
推荐阅读
- javascript - 将javascript数组从本地文件导入本地python文件
- swift - StackViews 中的 StackViews 基于最小项均等填充
- mysql - SQL 多个 JOIN 或子查询但避免笛卡尔积
- python - 如何在 matplotlib 中使用 x 轴标签的列值
- kubernetes - 使用现有设置将 AKS 中的 pod 公开到 Internet
- c# - 在 Windows 窗体中将文本框值从一个窗体传递到另一个窗体
- linux - 从一个 CSV 复制 n 行并将它们粘贴到另一个 CSV 中 n 次
- python - django:在保存到数据库之前验证多对多关系的计数
- javascript - 删除使用 OBJLoader Three.js 加载的对象
- php - 使用 PHP 从浏览器向 MySQL 插入多列