Asesor de Apache Spark para obtener consejos en tiempo real sobre cuadernos

Advisor de Apache Spark analiza los comandos y el código que ejecuta Spark, y muestra avisos en tiempo real para las ejecuciones de Notebook. El asesor de Apache Spark tiene patrones integrados para ayudar a los usuarios a evitar errores comunes. Ofrece recomendaciones para optimizar el código, realiza análisis de errores y localiza la causa raíz de los fallos.

Avisos integrados

Spark advisor, una herramienta integrada en Impulse, proporciona patrones incorporados para detectar y resolver problemas en aplicaciones Apache Spark. En este artículo se explican algunos de los patrones incluidos en la herramienta.

Puedes abrir el panel de ejecuciones recientes en función del tipo de asesoramiento que necesites.

Puede devolver resultados incoherentes al usar "randomSplit"

Al trabajar con el método randomSplit pueden obtenerse resultados inconsistentes o imprecisos. Use el almacenamiento en caché de Apache Spark (RDD) antes de usar el método "randomSplit".

El método randomSplit() es equivalente a realizar sample() en su marco de datos varias veces. Donde cada captura de ejemplo, las particiones y ordena la trama de datos dentro de las particiones. La distribución de datos entre particiones y criterio de ordenación es importante para randomSplit() y sample(). Si alguno de los dos cambia al volver a obtener los datos, puede haber duplicados o valores que falten en las divisiones. Y el mismo ejemplo con la misma inicialización puede producir resultados diferentes.

Es posible que estas incoherencias no se produzcan en todas las ejecuciones, pero para eliminarlas por completo, almacene en caché su marco de datos, reparticion en una o varias columnas o aplique funciones agregadas como groupBy.

El nombre de la tabla/vista ya está en uso

Ya existe una vista con el mismo nombre que la tabla creada o ya existe una tabla con el mismo nombre que la vista creada. Cuando este nombre se usa en consultas o aplicaciones, solo se devolverá la vista, independientemente de cuál haya creado primero. Para evitar conflictos, cambie el nombre de la tabla o de la vista.

No se puede reconocer una sugerencia

spark.sql("SELECT /*+ unknownHint */ * FROM t1")

No se pueden encontrar nombres de relación especificados

No se pueden encontrar las relaciones especificadas en la sugerencia. Compruebe que las relaciones están escritas correctamente y sean accesibles dentro del ámbito de la sugerencia.

spark.sql("SELECT /*+ BROADCAST(unknownTable) */ * FROM t1 INNER JOIN t2 ON t1.str = t2.str")

Una sugerencia de la consulta impide que se aplique otra sugerencia

La consulta seleccionada contiene una sugerencia que impide que se aplique otra sugerencia.

spark.sql("SELECT /*+ BROADCAST(t1), MERGE(t1, t2) */ * FROM t1 INNER JOIN t2 ON t1.str = t2.str")

Habilite "spark.advise.divisionExprConvertRule.enable" para reducir la propagación de errores de redondeo

Esta consulta contiene la expresión con tipo Double. Se recomienda habilitar la configuración "spark.advise.divisionExprConvertRule.enable", lo que puede ayudar a reducir las expresiones de división y reducir la propagación de errores de redondeo.

"t.a/t.b/t.c" convert into "t.a/(t.b * t.c)"

Habilite "spark.advise.nonEqJoinConvertRule.enable" para mejorar el rendimiento de las consultas

Esta consulta contiene una combinación que consume mucho tiempo debido a la condición "Or" en la consulta. Se recomienda habilitar la configuración "spark.advise.nonEqJoinConvertRule.enable", lo cual puede ayudar a convertir la combinación desencadenada por la condición "Or" en SMJ o BHJ para acelerar esta consulta.

Experiencia del usuario

El asesor de Apache Spark muestra los consejos, incluyendo información, advertencias y errores, en la salida de la celda de Notebook en tiempo real.

  • Información Captura de pantalla con la información.

  • Peligro Captura de pantalla de la advertencia.

  • Error Screenshot of the error message.

Configuración de Spark Advisor

La configuración de Spark Advisor te permite elegir si mostrar u ocultar tipos específicos de consejos de Spark según tus necesidades. Además, tienes la flexibilidad de habilitar o deshabilitar Spark Advisor para los cuadernos dentro de un área de trabajo, en función de tus preferencias.

Puedes acceder a la configuración de Spark Advisor en el nivel de Fabric Notebook para disfrutar de sus ventajas y garantizar una experiencia productiva de creación de cuadernos.

Captura de pantalla que muestra el menú de configuración de Spark Advisor.