如何在Scala控制台中禁用Stage相关日志输出?
如何禁用Scala控制台中的Spark Stage进度日志
我懂你碰到的这个困扰了——那些[Stage 103:> (1 + 1) / 100]这类的进度日志并不是通过log4j输出的,所以你之前针对org和akka日志级别的设置对它们完全不起作用。这些是Spark专门用来展示任务执行进度的控制台输出,得用Spark专属的配置来关闭。
下面是几种可行的解决方案:
在SparkSession初始化时直接配置
如果你是通过代码创建SparkSession,可以在构建器中添加关键配置项:import org.apache.spark.sql.SparkSession val spark = SparkSession.builder() .appName("YourApplication") .master("local[*]") // 根据你的运行环境调整,集群模式可省略该配置 .config("spark.ui.showConsoleProgress", false) // 核心配置:关闭控制台进度显示 .getOrCreate()在Spark Shell/Scala控制台启动时传入参数
如果你是直接启动Spark Shell,可以在启动命令中加入配置参数:spark-shell --conf spark.ui.showConsoleProgress=false进入控制台后动态修改配置
已经进入Scala控制台/Spark Shell的情况下,也可以通过SparkSession动态设置:spark.conf.set("spark.ui.showConsoleProgress", false)
设置完成后,那些烦人的Stage进度日志就不会再出现在控制台里了。
内容的提问来源于stack exchange,提问作者Khaled Omar
相关产品推荐
相关产品推荐

