Ir al contenido principal

Spark (parte 2)

En el post pasado platicamos un poco por los antecedentes de Spark mostrando el primer estudio que se realizó comparando Spark con Hadoop.

Otra aspecto en el cual Spark arroja resultados sorprendentes es la tarea del ordenamiento de datos, de tal manera que los autores del libro, mencionan que no hay otro sistema en el mundo más rápido que Spark (claro al momento que se escribió dicho libro, en esto de las Tecnologías de la Información todo es relativo).

"Aunque Spark es bien conocido por su rendimiento en memoria, fue diseñado para ser un motor de ejecución general que funciona tanto en memoria como en disco. Por ejemplo, Spark ha configurado el ordenamiento de datos, para el cual los datos no se cargaron en la memoria; más bien, Spark realizó mejoras en la serialización y la  reorganización de la red, así como el uso eficiente de la caché de la CPU para mejorar drásticamente el rendimiento". (Luraschi et al, 2020)

El libro detalla el poder de Spark contra Hadoop para lo cual muestro la siguiente tabla donde podemos hacer una comparación entre estos 2 frameworks al ordenar 100 Terabytes de datos.


Asi mismo la sintaxis de Spark es mucho más sencilla que la de Hadoop y en el libro lo menciona haciendo referencia al ejemplo de "conteo de palabras" con lo que se explicó el esquema MapReduce en el artículo pasado, Hadoop necesita 50 líneas de código contra solo 2 que se necesitan en Spark.

Nuevamente al amor del hombre por el hombre se hace manifiesto y el proyecto Spark se dona en 2013 a la Fundación de Software de Apache, licenciado con Apache 2.0, la cual permite su uso gratuito, y este software puede ser modificado y distribuido.

Entonces podemos concluir en este punto una definición de Spark que se menciona en su sitio web oficial "Apache Spark es un motor de análisis unificado para el procesamiento de datos a gran escala". 

A continuación enlistaremos una serie de características de esta poderosa herramienta:

Unificado.

Spark soporta muchas librerías, tecnologías de cluster y sistemas de almacenamiento.

Analítica.

La analítica es el descubrimiento y la interpretación de datos para producir y comunicar información.

Motor.

Se espera que Spark sea genérico y eficiente. 

Gran escala.

Puedes interpretar gran-escala como escala-de-cluster , es decir un conjunto de computadoras conectadas trabajando juntas.

Uno de los problemas que nos empezamos a encontrar en el Instituto es el manejo de datos con una gran cantidad de registros, y es por eso que Spark se presenta como una buena opción para resolver esta situación, en esta literatura se aborda el termino "Big Compute" que es el tipo de problemas que se nos presentan por ahora en nuestro campo de estudio.

"Por lo tanto, Spark es bueno para abordar problemas de procesamiento de datos a gran escala, generalmente conocidos como Big Data (conjuntos de datos que son más voluminosos y complejos que los tradicionales) pero también es bueno para abordar problemas de computación a gran escala, conocidos como Big Compute ( herramientas y enfoques que utilizan una gran cantidad de recursos de CPU y memoria de forma coordinada). La Big Data a menudo requiere el Big Compute, pero el Big Compute no necesariamente requiere a la Big Data.

Los problemas de Big Data y Big Compute suelen ser fáciles de detectar: si los datos no caben en una sola máquina, es posible que tenga un problema de Big Data; Si los datos encajan en una sola máquina, pero el procesamiento lleva días, semanas o incluso meses para ejecutarse, es posible que se tenga un problema de Big Compute." (Luraschi et al, 2020)

Spark es recomendable también para abordar problemas de velocidad, variedad (obtener datos de muchas fuentes de datos) y veracidad (calidad de los datos).

Dicho esto concluimos esta parte teórica para dar paso a la parte práctica, poner en marcha la combinación Spark con el lenguaje R.

Para consultar el libro lo podemos hacer aquí.

Seguimos escribiendo sobre este tema en el siguiente post.

Miguel Araujo.


Javier Luraschi, Kevin Kuo, Edgar Ruiz. (2020). Mastering Spark with R. United States of America: O'Really Media Inc.

Comentarios

Entradas populares de este blog

Posit Cloud - como instalar librerías de Python en el entorno de R

 Ahora que estamos tomando una maestría buscando que siga "girando la ardilla" por unos años más en la materia de "Cómputo Estadístico" nos ha sugerido usar la versión gratuita de Posit en la nube. En su página definen este producto como "es una solución basada en la nube que permite acceder al poderoso conjunto de herramientas de ciencia de datos de Posit directamente en el navegador web  - sin requerir instalación o configuraciones complejas". Para los usuarios que han utilizado Posit RStudio en primera instancia verán el entorno muy similar a Posit Cloud con algunas pequeñas diferencias, para empezar necesitamos un usuario o contraseña aunque es posible autenticarse usando alguna cuenta existente como es el caso de Google. Con el tiempo y trabajando en desarrollo de software, vamos entendiendo que quizás el nombre queda muy grande a los pequeños ejemplos, pero es muy recomendable el uso de proyectos siempre. A continuación vemos el entorno Posit Clo...

La librería openxlsx

En el Instituto se utiliza como herramienta de trabajo institucional la suite de ofimática MS Office que ofrece un precio asequible aunque lo actual en el mundo del software es el esquema de suscripciones el que casi se ha convertido en el común de las empresas gigantes de las tecnologías de la información. Es por ello que si bien en un principio que se usaban las bibliotecas XLConnectJars   y XLConnect, al tratar de bajarlas e instalarlas se descubrió - en aquel entonces - que estaban obsoletas. Es por ello que se volteo a la que revisaremos superficialmente en este artículo. Lo primero como siempre es descargar la librería openxlsx que se puede hacer desde el mismo Posit RStudio. Vamos a recrear un cuadro existente en el sitio del Instituto que debido a la crisis sanitaria iniciada en 2020 cobra una relevancia muy importante: "Las principales causas de muerte" que de forma anecdótica   fue la primera aplicación en la cual me pidieron que participara, un programa escri...

R 4.5 vs R 4.4.3

Cuando comparto con mis colegas, sobre todo de trabajo que es mi nicho profesional, acerca de porque tener las últimas versiones del software y que replico sobre todo por dos vertientes: mejor desempeño y funcionalidad del software, y la seguridad que pareciera que las empresas de software recomiendan los mismo o algo cercano a esto. Por ejemplo, veamos lo que nos dice Oracle (dueño de Java) acerca de su versión 8 del Java SE.   En la tabla de la página de Oracle podemos observar las fechas en los cuales ya no habrá soporte para ciertas versiones de Java. En este breve artículo veremos en el caso del interprete de R como se desempeña en una versión con respecto a la más reciente. Los puestos de trabajo que se registran por los patrones en el IMSS ha sido una cifra que muestra el avance o retroceso de como se encuentra el empleo en nuestro país, en este caso diremos que en el sector formal. Los microdatos oscilan arriba de los 20 millones y para su procesamiento es necesario o divi...