如何测量spark中每个运算符的运行时间

时间:2018-03-12 10:14:54

标签: scala apache-spark runtime bigdata profiling

有没有办法在Spark中测量每个运算符的运行时间

例如,我有以下字数统计代码:

val counts = textFile.flatMap(line => line.split(" "))
             .map(word => (word, 1))
             .reduceByKey(_ + _)

如何单独测量每个map / flatMap / reduceByKey运算符的运行时间?

1 个答案:

答案 0 :(得分:1)

你可以为每次转换做一些奇怪的事情,比如创建accumulators,并在那里积累时间。 Here是时间测量的代码。 只需用它来测量每个操作的时间,并为累加器增加值。

但这真是一种奇怪的方法

首先 - 所有转换都转换为任务,然后发送给工人执行。甚至可能是多次转换属于同一任务。

所以我认为你想要的是使用Spark Web UI