복붙노트

[SQL] 스파크에서 쿼리의 실행 시간을 측정하는 방법

SQL

스파크에서 쿼리의 실행 시간을 측정하는 방법

아파치 스파크 (Bluemix) 쿼리의 실행 시간을 측정 할 필요가있다. 내가 뭘하려합니다 :

import time

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

그것은 좋은 방법인가? 나는 외모를 내가 표를 볼 때 너무 작은 상대를 얻을 시간.

해결법

  1. ==============================

    1.최신 정보: 아니, 시간이 패키지를 사용하면 스파크 작업의 실행 시간을 측정하는 가장 좋은 방법은 아니다. 내가 아는 가장 편리하고 정확한 방법은 스파크 역사 서버를 사용하는 것입니다.

    최신 정보: 아니, 시간이 패키지를 사용하면 스파크 작업의 실행 시간을 측정하는 가장 좋은 방법은 아니다. 내가 아는 가장 편리하고 정확한 방법은 스파크 역사 서버를 사용하는 것입니다.

    Bluemix에, 당신의 노트북에 오른쪽에있는 "Paelette"로 이동합니다. 은 "Evironment"패널을 선택하고 당신은 당신이 계산 시간을 포함하여 수행 스파크 작업을 조사 할 수있는 스파크 역사 서버에 대한 링크를 볼 수 있습니다.

  2. ==============================

    2.나는 System.nanoTime이 같은 도우미 함수를 감싸 사용 -

    나는 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. ==============================

    3.스파크 쉘 (스칼라)에서 작업을 수행하려면, 당신은 spark.time ()을 사용할 수 있습니다.

    스파크 쉘 (스칼라)에서 작업을 수행하려면, 당신은 spark.time ()을 사용할 수 있습니다.

    https://stackoverflow.com/a/50289329/3397114 : 내게로 다른 응답

    df = sqlContext.sql(query)
    spark.time(df.show())
    

    출력은 다음과 같습니다

    +----+----+
    |col1|col2|
    +----+----+
    |val1|val2|
    +----+----+
    Time taken: xxx ms
    

    관련 : 성능 문제 해결을위한 아파치 스파크 워크로드 메트릭 측정에.

  4. ==============================

    4.SPARK 자체는 스파크 작업의 각 단계에 대한 많은 세부 정보를 제공합니다.

    SPARK 자체는 스파크 작업의 각 단계에 대한 많은 세부 정보를 제공합니다.

    // IP-MasterNode을 : 당신은 HTTP에 실행중인 작업을 볼 수 있습니다 4040 또는 당신은 나중에 작업을 분석하는 역사 서버를 활성화 할 수 있습니다.

    역사 서버에 대한 추가 정보를 원하시면 여기를 참조하십시오.

  5. from https://stackoverflow.com/questions/34629313/how-to-measure-the-execution-time-of-a-query-on-spark by cc-by-sa and MIT license