如何在 pyspark 作业中设置 logLevel

Ada*_*air 6 virtualenv pyspark

我正在尝试在 pyspark 作业中设置日志级别。我没有使用 Spark shell,因此我不能只执行它的建议并调用 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()
Run Code Online (Sandbox Code Playgroud)

Ada*_*air 10

SparkSession 对象有一个属性来获取 SparkContext 对象,并且在其上调用 setLogLevel 确实会更改正在使用的日志级别:

spark = SparkSession.builder.master("local").appName("test-mf").getOrCreate()
spark.sparkContext.setLogLevel("DEBUG")
Run Code Online (Sandbox Code Playgroud)

  • 如何在向“stderr”发送消息的“getOrCreate()”之前设置该属性? (11认同)