我正在尝试在pyspark作业中设置日志级别。我没有使用sparkshell,所以我不能只做它建议的事情并调用sc.setLogLevel(newLevel),因为我没有sc对象。
很多消息来源说只需修改log4j.properties,但我不知道在哪里找到/放置该文件。我在虚拟环境中使用了pip install pyspark,所以我没有设置的$SPARK_HOME环境变量(源代码通常说log4j.properties在$SPARK_HOME中)。
我希望我能以编程方式调用它,但我不知道在哪里调用setLogLevel。现在我的安装代码是这样的:
spark = SparkSession.builder.master("local").appName("test-mf").getOrCreate()
2条答案
按热度按时间jhkqcmku1#
SparkSession对象有一个属性来获取SparkContext对象,在其上调用setLogLevel确实会更改正在使用的日志级别:
9nvpjoqh2#
为了抑制getOrCreate发出的消息,需要使用
appName(...).config(...).config(...).getOrCreate()
将配置选项传递给sparksession构建器使用以下配置属性覆盖默认的log4j属性:
下面的custom_log4j.properties文件足以使我的系统上的警告静音: