在 Spark Log 中获取完整的堆栈跟踪

ozz*_*acs 5 scala apache-spark

我想在我的 spark 执行器日志中看到完整的堆栈跟踪。

我有例如:

引起:java.lang.RuntimeException:java.lang.Long 不是 org.apache.spark.sql.catalyst.expressions.GeneratedClass$SpecificUnsafeProjection.apply_0$(generated.java:434) 处 int 架构的有效外部类型在 org.apache.spark.sql.catalyst.expressions.GeneratedClass$SpecificUnsafeProjection.apply(generated.java:737) 在 org.apache.spark.sql.catalyst.encoders.ExpressionEncoder.toRow(ExpressionEncoder.scala:290) .. . 18 更多

我想看看还有 18 个失踪的。我曾尝试更改为日志记录级别等,但没有帮助。

Sha*_*pLu 0

解决方案1.在您的spark安装文件夹中,有一个conf文件夹包含log4j.properties文件,您可以将该文件配置为日志级别。

Spark默认使用INFO,购买后您可以更改为DEBUG或TRACE来获取所有spark日志。配置模板: https://github.com/apache/spark/blob/master/conf/log4j.properties.template

Level 的其他选项包括:all、debug、error、fatal、info、off、trace、trace_int、warn

解决方案 2. 将这些记录器放入 SparkContext() 函数

import org.apache.log4j.Logger; 
import org.apache.log4j.Level;

Logger.getLogger("org").setLevel(Level.INFO); 
Logger.getLogger("akka").setLevel(Level.INFO);
Run Code Online (Sandbox Code Playgroud)

level.Info 可以更改为 DEBUG OR TRACE 等。