Saltar al contenido

Spark Transformation – ¿Por qué es perezoso y cuál es la ventaja?

Solución:

Para las transformaciones, Spark las agrega a un DAG de cálculo y solo cuando el controlador solicita algunos datos, este DAG realmente se ejecuta.

Una ventaja de esto es que Spark puede tomar muchas decisiones de optimización después de tener la oportunidad de ver el DAG en su totalidad. Esto no sería posible si ejecutara todo tan pronto como lo consiguiera.

Por ejemplo, si ejecutó cada transformación con entusiasmo, ¿qué significa eso? Bueno, significa que tendrá que materializar tantos conjuntos de datos intermedios en la memoria. Evidentemente, esto no es eficiente; por un lado, aumentará los costos de GC. (Porque realmente no estás interesado en esos resultados intermedios como tales. Esas son solo abstracciones convenientes para ti mientras escribes el programa). Entonces, lo que haces en su lugar es: le dices a Spark cuál es la respuesta final que te interesa y descubre la mejor manera de llegar allí.

Considere un archivo de registro de 1 GB donde tiene mensajes de error, advertencia e información y está presente en HDFS como bloques de 64 o 128 MB (no importa en este contexto). Primero crea un RDD llamado “entrada” de este texto expediente. Luego, crea otro RDD llamado “errores” aplicando un filtro en el RDD de “entrada” para buscar solo las líneas que contienen mensajes de error y luego llama a la acción primero () en el RDD “error”. Spark optimizará aquí el procesamiento del archivo de registro deteniéndose tan pronto como encuentre la primera aparición de un mensaje de error en cualquiera de las particiones. Si se hubiera repetido el mismo escenario en una evaluación ansiosa, Spark habría filtrado todas las particiones del archivo de registro aunque solo estuviera interesado en el primer mensaje de error.

De https://www.mapr.com/blog/5-minute-guide-understanding-significance-apache-spark

La evaluación perezosa significa que si le dice a Spark que opere con un conjunto de datos, escucha lo que le pide que haga, escribe algunas abreviaturas para que no se olvide y luego no hace absolutamente nada. Seguirá sin hacer nada hasta que le pida la respuesta final. […]

Espera hasta que termine de darle operadores, y solo cuando le pide que le dé la respuesta final, evalúa, y siempre busca limitar la cantidad de trabajo que tiene que hacer.

Ahorra tiempo y potencia de procesamiento no deseada.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *