2016-02-08 12 views
5

Sto provando a eseguire un paio di istruzioni SQL spark e voglio calcolare il loro tempo di esecuzione.Calcola il tempo di esecuzione per spark sql

Una delle soluzioni è ricorrere al log. Mi chiedo se ci siano altri metodi più semplici per farlo. Qualcosa di simile a quanto segue:

import time 

startTimeQuery = time.clock() 
df = sqlContext.sql(query) 
df.show() 
endTimeQuery = time.clock() 
runTimeQuery = endTimeQuery - startTimeQuery 

risposta

8

Se stai usando scintilla shell (Scala) si potrebbe provare la definizione di una funzione di temporizzazione come questo:

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 
} 

allora si può provare:

val df = show_timing{sqlContext.sql(query)} 
Problemi correlati