我希望在我的spark执行器日志中看到完整的堆栈跟踪。
我有例如:
引起:java.lang.RuntimeException:java.lang.Long不是int模式的有效外部类型 在org.apache.spark.sql.catalyst.expressions.GeneratedClass $ SpecificUnsafeProjection.apply_0 $(generated.java:434) 在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个缺失。我已经尝试过更改为日志级别等,但它没有帮助。
答案 0 :(得分:0)
Solusion 1.在你的spark安装文件夹中,有一个conf文件夹包含log4j.properties文件,你可以将该文件配置为日志级别。
Spark默认使用INFO,买你可以改为DEBUG或TRACE来获取所有的火花日志。 配置模板: https://github.com/apache/spark/blob/master/conf/log4j.properties.template
Level的其他选项包括:all,debug,error,fatal,info,off,trace,trace_int,warn
Solusion 2.将这些记录器放入SparkContext()函数
import org.apache.log4j.Logger;
import org.apache.log4j.Level;
Logger.getLogger("org").setLevel(Level.INFO);
Logger.getLogger("akka").setLevel(Level.INFO);
level.Info可以更改为DEBUG OR TRACE等。