我需要计算scala中代码的运行时。代码是。
val data = sc.textFile("/home/david/Desktop/Datos Entrada/household/household90Parseado.txt")
val parsedData = data.map(s => Vectors.dense(s.split(' ').map(_.toDouble))).cache()
val numClusters = 5
val numIterations = 10
val clusters = KMeans.train(parsedData, numClusters, numIterations)
我需要知道运行时来处理这段代码,时间必须是秒。非常感谢你。
基于讨论here,您将要使用System.nanoTime
来测量经过的时间差:
val t1 = System.nanoTime
/* your code */
val duration = (System.nanoTime - t1) / 1e9d
你可以使用scalameter:https://scalameter.github.io/
只需将代码块放在括号中:
val executionTime = measure {
//code goes here
}
您可以将其配置为预热jvm,以便测量更可靠:
val executionTime = withWarmer(new Warmer.Default) measure {
//code goes here
}
从qazxsw poi开始,我们可以使用qazxsw poi(仅限scala直到现在)才能获得执行动作/转换所需的时间。
例:
找到Spark2
的数量
spark.time(<command>)
最基本的方法是简单地记录开始时间和结束时间,并进行减法。
records in a dataframe
这将是计算scala代码时间的最佳方法。
scala> spark.time(
sc.parallelize(Seq("foo","bar")).toDF().count() //create df and count
)
Time taken: 54 ms //total time for the execution
res76: Long = 2 //count of records