Se necesita para medir el tiempo de ejecución de la consulta en Apache spark (Bluemix).
Lo que he intentado:

import time

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

Es una buena manera? La vez que me parece demasiado pequeña en relación a cuando veo a la mesa.

InformationsquelleAutor Yakov | 2016-01-06

4 Comentarios

  1. 5

    Actualización:
    No, el uso de time paquete no es la mejor manera de medir el tiempo de ejecución de la Chispa de puestos de trabajo. La forma más conveniente y exacto de la manera que yo conozco es el uso de la Chispa de la Historia Servidor.

    En Bluemix, en sus cuadernos de ir a la «Paelette» en el lado derecho. Elegir el «medio Ambiente» del Panel y verás un enlace a la Chispa de la Historia del Servidor, donde se puede investigar la Chispa de los trabajos incluidos los tiempos de cómputo.

    • Sé el OP aceptado la respuesta, pero, extrañamente, no literalmente la respuesta a su pregunta, es decir, de utilizar el tiempo.clock() para medir el tiempo de ejecución de consulta. Yo tenía la misma pregunta, por eso acabé aquí, pero al final no hay respuesta.
    • Ops, buen punto, se perdió el simple «No» y se fue directamente a la solución 🙂 Gracias!
  2. 9

    Yo uso System.nanoTime envuelto alrededor de una función auxiliar, como esta –

    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. 9

    Hacerlo en la línea de comandos, puede utilizar spark.time().

    Ver otra respuesta por mí: https://stackoverflow.com/a/50289329/3397114

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

    La salida sería:

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

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

    • hay algo que debo incluyendo como parte de mi jupyter para ejecutar chispa.tiempo.. está mostrando que AttributeError: ‘SparkSession’ el objeto no tiene ningún atributo ‘tiempo’ ( estoy usando pyspark.. es esto sólo disponible en la scala versión?)
    • Yo estaba usando Scala en EMR. No sé si PySpark ha time()
  4. 3

    CHISPA en sí ofrece mucho más granular información acerca de cada etapa de su Chispa de Trabajo.

    Usted puede ver su trabajo en ejecución en http://IP-MasterNode:4040 o puede habilitar la Historia de servidor para el análisis de los puestos de trabajo en un momento posterior.

    Consulte aquí para obtener más información sobre la Historia de servidor.

    • El OP está preguntando acerca de la Apache Spark Servicio en Bluemix, por lo que no ejecuta su propia chispa de clúster bajo su propio control; por ejemplo, no exponga la interfaz de usuario en 4040.

Dejar respuesta

Please enter your comment!
Please enter your name here