计算spark sql的运行时间

Fih*_*hop 6 apache-spark

我正在尝试运行几个spark SQL语句,并想要计算它们的运行时间.

其中一个解决方案是使用日志.我想知道有没有其他更简单的方法来做到这一点.类似于以下内容:

import time

startTimeQuery = time.clock()
df = sqlContext.sql(query)
df.show()
endTimeQuery = time.clock()
runTimeQuery = endTimeQuery - startTimeQuery
Run Code Online (Sandbox Code Playgroud)

fem*_*yte 10

如果你正在使用spark-shell(scala),你可以尝试定义这样的计时函数:

def show_timing[T](proc: => T): T = {
    val start=System.nanoTime()
    val res = proc // call the code
    val end = System.nanoTime()
    println("Time elapsed: " + (end-start)/1000 + " microsecs")
    res
}
Run Code Online (Sandbox Code Playgroud)

然后你可以尝试:

val df = show_timing{sqlContext.sql(query)}
Run Code Online (Sandbox Code Playgroud)