6.3 Introducción al Análisis de Datos Masivos

En primer lugar se ha de considerar explorar los datos y realizar minería con ellos, y eso es posible hacerlo vía Sparklyr, como hemos visto, o para un análisis más visual, Rattle, que se presenta a continuación:

6.3.1 Rattle

Es un paquete para R, con interfaz gráfica desarrollada en GTK, que permite generar código R para minería de datos. Se instala según los pasos indicados a continuación:

Un tutorial adecuado para introducirse en Rattle es éste

Con el tutorial se pueden ver las capacidades de rattle de explorar los datos, como se puede apreciar a continuación.

6.3.2 Combinando los distintos elementos

Vamos a seguir un tutorial de análisis de datos de vuelos, adaptándolo al entorno del CESGA.

En primer lugar, tras conectarnos por ssh al CESGA, y en el mismo directorio en que hemos hecho la conexión, nos descargamos los datos:

Comprobamos que los datos están correctos:

Y los copiamos al HDFS a través del comando fs de Hadoop:

A continuación lanzamos la ejecución de ‘hive’:

Y creamos los metadatos que estructurarán la tabla de vuelos y cargamos los datos en la tabla Hive:

Ídem para la tabla de aerolíneas, creamos los metadatos y cargamos los datos en la tabla HIVE:

Ídem para la tabla de aeropuertos, creamos los metadatos y cargamos los datos en la tabla HIVE:

Nos conectamos a Spark (desde jupyter-lab o R): (alternativamente con ‘sc <- spark_connect(master = “local”)’ )

Si tenemos problemas para conectar podemos gestionar con YARN los recursos

Crear tablas dplyr a tablas HIVE:

Ejemplos de análisis exploratorio de datos. Todos los vuelos por año:

Vuelos con origen LAX (Los Angeles) por año:

Y listado de países y número de aeropuertos:

Vamos a proceder a generar un conjunto de datos para calcular un modelo. Para ello buscaremos modelar como una regresión lineal la ganancia de un vuelo (gain) como (depdelay - arrdelay) basándose en la distancia, el retraso de la salida y la aerolínea usando datos del período 2003-2007:

Para entrenar la regresión lineal y predecir el tiempo ganado o perdido en un vuelo en función de la distancia, retraso en la salida y aerolínea procedemos de este modo:

A continuación se compara la bondad del modelo con el subconjunto de validación

Visualizar predicciones usando el año 2008 (no usado en el entrenamiento):

Al terminar cualquier ejercicio con sparklyr desconectamos de Spark: