我的代码用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
以实现DataFrame。