Мой код написан на Spark и Scala.Теперь мне нужно измерить прошедшее время определенных функций кода.
Должен ли я использовать spark.time
как это?Но тогда как мне правильно назначить значение df
?
val df = spark.time(myObject.retrieveData(spark, indices))
Или я должен сделать это таким образом?
def time[R](block: => R): R = {
val t0 = System.nanoTime()
val result = block // call-by-name
val t1 = System.nanoTime()
println("Elapsed time: " + (t1 - t0) + "ns")
result
}
val df = time{myObject.retrieveData(spark, indices)}
Обновление:
Как рекомендуется в комментариях, я запускаю df.rdd.count
внутри myObject.retrieveData
для материализации Фрейма данных.