如何执行spark应用程序日志记录

时间:2016-11-21 19:05:01

标签: logging apache-spark apache-spark-sql

如何在spark应用程序中使用日志记录?

问题是火花代码不会像写入一样执行,而是异步和优化,例如可能的顺序不同。

正如我在此指出stylish spark dataset transformation 以下不应该工作/不一定在spark的优化查询计划中按预期工作:

logger.info("first")
val first = df.someTransformation
logger.info("second")
val second = df.otherTransformation

1 个答案:

答案 0 :(得分:2)

您示例中的日志声明并不是很有意义。

我看到3种记录方式:

a)如果你只想记录"进展"如您在示例中所示,您必须在转换后应用操作(例如调用count()),但这会导致不必要的计算

b)使用spark UI的montior spark,并查看spark.eventLog.enabled之类的设置以保持输出

c)在UDF / UDAF中,您可以使用累加器来收集执行程序的日志,并使其可供驱动程序访问。