如何在不更改 log4j.properties 的情况下关闭 PySpark 日志中的信息?
How to turn off INFO from logs in PySpark with no changes to log4j.properties?
我在一个集群中工作,我无权更改文件 log4j.properties 以在使用 pyspark 时停止信息记录(如第一个答案 here 中所述)以下解决方案如上述问题的第一个答案中所述,spark-shell (scala)
import org.apache.log4j.Logger
import org.apache.log4j.Level
但是对于带有 python 的 spark(即 pyspark),它既不工作也不工作
Logger.getLogger("org").setLevel(Level.OFF)
Logger.getLogger("akka").setLevel(Level.OFF)
如何在不更改 log4j.properties 文件的情况下停止在 pyspark 中详细打印信息?
来自 :
logger = sc._jvm.org.apache.log4j
logger.LogManager.getLogger("org").setLevel( logger.Level.OFF )
logger.LogManager.getLogger("akka").setLevel( logger.Level.OFF )
对我有用。这基本上就是在 PySpark's own tests:
中完成的方式
class QuietTest(object):
def __init__(self, sc):
self.log4j = sc._jvm.org.apache.log4j
def __enter__(self):
self.old_level = self.log4j.LogManager.getRootLogger().getLevel()
self.log4j.LogManager.getRootLogger().setLevel(self.log4j.Level.FATAL)
我使用 sc.setLogLevel("ERROR")
因为我没有对我们集群的 log4j.properties 文件的写入权限。来自 docs:
Control our logLevel. This overrides any user-defined log settings. Valid log levels include: ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE, WARN
这对我有帮助:
import logging
s_logger = logging.getLogger('py4j.java_gateway')
s_logger.setLevel(logging.ERROR)
spark_context = SparkContext()
我在一个集群中工作,我无权更改文件 log4j.properties 以在使用 pyspark 时停止信息记录(如第一个答案 here 中所述)以下解决方案如上述问题的第一个答案中所述,spark-shell (scala)
import org.apache.log4j.Logger
import org.apache.log4j.Level
但是对于带有 python 的 spark(即 pyspark),它既不工作也不工作
Logger.getLogger("org").setLevel(Level.OFF)
Logger.getLogger("akka").setLevel(Level.OFF)
如何在不更改 log4j.properties 文件的情况下停止在 pyspark 中详细打印信息?
来自 :
logger = sc._jvm.org.apache.log4j
logger.LogManager.getLogger("org").setLevel( logger.Level.OFF )
logger.LogManager.getLogger("akka").setLevel( logger.Level.OFF )
对我有用。这基本上就是在 PySpark's own tests:
中完成的方式class QuietTest(object):
def __init__(self, sc):
self.log4j = sc._jvm.org.apache.log4j
def __enter__(self):
self.old_level = self.log4j.LogManager.getRootLogger().getLevel()
self.log4j.LogManager.getRootLogger().setLevel(self.log4j.Level.FATAL)
我使用 sc.setLogLevel("ERROR")
因为我没有对我们集群的 log4j.properties 文件的写入权限。来自 docs:
Control our logLevel. This overrides any user-defined log settings. Valid log levels include: ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE, WARN
这对我有帮助:
import logging
s_logger = logging.getLogger('py4j.java_gateway')
s_logger.setLevel(logging.ERROR)
spark_context = SparkContext()