Spark: Conceptos básicos antes de codificar

Spark ha sido llamado un “motor de procesamiento de datos distribuido de propósito general”  y “un motor de análisis unificado ultrarrápido para big data y machine learning“.

 Le permite procesar grandes conjuntos de datos más rápido al dividir el trabajo en fragmentos y asignar esos fragmentos a los recursos computacionales.

Puede manejar hasta petabytes (¡eso es millones de gigabytes!) De datos y administrar hasta miles de máquinas físicas o virtuales.

Algunas características distintivas incluyen el uso de la memoria y el enfoque en el desarrollo fácil. Intenta mantener todos los datos en la memoria, solo escribiendo en los discos si no hay suficiente memoria.

 Tenga en cuenta que esto corre el riesgo de necesitar reiniciar desde cero en caso de falla, en beneficio de eliminar los procesos de lectura y escritura que requieren mucho tiempo. Facilita el desarrollo con énfasis en el diseño de API e integración con varios idiomas y herramientas.

¿Por qué querrías usar Spark?

Spark tiene algunas grandes ventajas:

  • Consulta, análisis y transformación de datos de alta velocidad con grandes conjuntos de datos.

¿Cuándo funciona mejor?

  • Si ya está utilizando un lenguaje compatible (Java, Python, Scala, R)

Algunos usos comunes:

  • Realizar trabajos por lotes ETL o SQL con grandes conjuntos de datos.

¿Cuándo no quieres usar Spark?

Para sistemas multiusuario, con memoria compartida, Hive puede ser una mejor opción. Para el procesamiento en tiempo real y de baja latencia, puede preferir Apache Kafka  . Con pequeños conjuntos de datos, no le dará grandes ganancias, por lo que probablemente sea mejor con las bibliotecas y herramientas típicas.

Dejá un comentario