当前位置:  开发笔记 > 数据库 > 正文

如何在Spark上测量查询的执行时间

如何解决《如何在Spark上测量查询的执行时间》经验,为你挑选了3个好方法。

我需要在Apache spark(Bluemix)上测量查询的执行时间.我尝试了什么:

import time

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

这是一个好方法吗?相对于看到桌子的时候,我得到的时间看起来太小了.



1> 小智..:

要在命令行中执行此操作,您可以使用spark.time().

请参阅我的另一个回复:https://stackoverflow.com/a/50289329/3397114

spark.time()

输出将是:

spark.time()

https://db-blog.web.cern.ch/blog/luca-canali/2017-03-measuring-apache-spark-workload-metrics-performance-troubleshooting



2> shridharama..:

我使用System.nanoTime包裹辅助函数,像这样 -

def time[A](f: => A) = {
  val s = System.nanoTime
  val ret = f
  println("time: "+(System.nanoTime-s)/1e6+"ms")
  ret
}

time {
  df = sqlContext.sql(query)
  df.show()
}



3> Sven Hafeneg..:

更新: 不,使用time包不是衡量Spark作业执行时间的最佳方法。我知道的最方便,最准确的方法是使用Spark History Server。

在Bluemix上,在笔记本中转到右侧的“调色板”。选择“环境”面板,您将看到指向Spark历史记录服务器的链接,您可以在其中调查执行的Spark作业,包括计算时间。

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有