从this StackOverflow线程,我知道如何在pyspark中获取和使用log4j记录器,如下所示:
from pyspark import SparkContext
sc = SparkContext()
log4jLogger = sc._jvm.org.apache.log4j
LOGGER = log4jLogger.LogManager.getLogger('MYLOGGER')
LOGGER.info("pyspark script logger initialized")
使用 spark-submit 脚本可以正常工作。
我的问题是如何修改 log4j.properties 文件以配置此特定记录器的日志级别或如何动态配置它?
答案 0 :(得分:2)
关于如何通过log4j.properties文件配置log4j还有其他答案,但我还没有看到有人提到如何动态地执行它,所以:
from pyspark import SparkContext
sc = SparkContext()
log4jLogger = sc._jvm.org.apache.log4j
LOGGER = log4jLogger.LogManager.getLogger('MYLOGGER')
# same call as you'd make in java, just using the py4j methods to do so
LOGGER.setLevel(log4jLogger.Level.WARN)
# will no longer print
LOGGER.info("pyspark script logger initialized")