Yak*_*kov 9 sql time apache-spark ibm-cloud
我需要在Apache spark(Bluemix)上测量查询的执行时间.我尝试了什么:
import time
startTimeQuery = time.clock()
df = sqlContext.sql(query)
df.show()
endTimeQuery = time.clock()
runTimeQuery = endTimeQuery - startTimeQuery
Run Code Online (Sandbox Code Playgroud)
这是一个好方法吗?相对于看到桌子的时候,我得到的时间看起来太小了.
Tyr*_*321 10
要在命令行中执行此操作,您可以使用spark.time().
请参阅我的另一个回复:https://stackoverflow.com/a/50289329/3397114
spark.time()
输出将是:
spark.time()
我使用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()
}
Run Code Online (Sandbox Code Playgroud)
更新:
不,使用time包不是衡量Spark作业执行时间的最佳方法。我知道的最方便,最准确的方法是使用Spark History Server。
在Bluemix上,在笔记本中转到右侧的“调色板”。选择“环境”面板,您将看到指向Spark历史记录服务器的链接,您可以在其中调查执行的Spark作业,包括计算时间。
| 归档时间: |
|
| 查看次数: |
13372 次 |
| 最近记录: |