ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Ingeniería para el Procesado Masivo de Datos


Enviado por   •  2 de Julio de 2023  •  Apuntes  •  1.766 Palabras (8 Páginas)  •  222 Visitas

Página 1 de 8

Asignatura

Datos del alumno

Fecha

Ingeniería para el Procesado Masivo de Datos

Apellidos:

Nombre:

Actividad: HDFS, Spark SQL y MLlib

Recuerda que esta actividad deberá ser completada en la plataforma. Solo tendrás un intento. Una vez que la envíes, se dará por cerrada. Tu puntuación y las respuestas correctas se mostrarán cuando finalice el período de entrega de la tarea.

Objetivos:

Con esta actividad, los estudiantes pondrán en práctica los conocimientos estudiados en las clases de teoría acerca del manejo de hadoop distributed file system (HDFS) y Apache Spark. Completarán un ejercicio sencillo, que involucra las dos tecnologías y que los ayudará a entender mejor el propósito de cada una, así como a verlas funcionar en un caso concreto.

A continuación, describimos el trabajo que debe llevar a cabo el estudiante y, en la siguiente sección, presentaremos la infraestructura disponible en la cual se realizarán las tareas, además de unas orientaciones sobre cómo utilizarla.

Descripción de la actividad:

Se compone de tres partes diferentes. En cada parte, hemos desglosado la explicación en pasos para facilitar su resolución.


  • Parte 1. Manejo de HDFS. Tras acceder a la terminal de Linux en Jupyter Lab, el alumno deberá:

[pic 1][pic 2]

  • Crear en el directorio raíz de HDFS una carpeta llamada «nombre_apellidos_ alumno» (sin tildes ni espacios), utilizando el comando de HDFS apropiado. Por ejemplo: «/Pepito_Perez».
  • Utilizando el botón «Upload» de JupyterLab (una flecha apuntando hacia arriba que se encuentra en la parte superior del menú lateral), subir el fichero CSV que se indica en el notebook a la carpeta «Local Disk» de JupyterLab. Esto lo subirá al disco duro de la máquina máster del clúster, que es donde se está ejecutando JupyterLab, y lo pondrá en el directorio raíz (/) del sistema de ficheros Linux.
  • Subirlo desde el disco local a la carpeta de HDFS creada en el primer apartado, utilizando, para ello, el comando de HDFS apropiado.
  • Una vez subido a HDFS, ejecutar el comando de HDFS que nos da información acerca de cómo está almacenado ese fichero. El fichero, por tanto, debe estar ubicado en la siguiente ruta de HDFS: /<nombre_apellidos_alumno>/<nombre_fichero.csv>

Después de realizar los pasos anteriores, responde lo siguiente:

  1. ¿Qué librerías son necesarias importar para esta parte 2?
  1. Pyspark y Findspark.
  2. Solo Pyspark.
  3. Solo Findspark.
  4. Spark, Pandas y Numpi.

  1. Qué función de Spark fue necesaria para cargar el fichero, seleccione la opción correcta.
  1. pyspark.readCsv().
  2. SparkSession(…).read(…).option().csv(…).
  3. Spark.readCsv().
  4. Ninguna de las anteriores.
  • Parte 2. Manejo de Apache Spark con notebooks de Jupyter. Se utilizará el archivo /<nombre_alumno>/<nombre_fichero.csv> que hemos subido a HDFS para resolver las siguientes cuestiones:
  • Subir al directorio GCS que aparece en el menú lateral de JupyterLab el notebook actividad1.ipynb.
  • Responder a las cuestiones indicadas en el notebook.
  • Nota. Si al abrir el notebook recién subido a Google Cloud Storage, en la parte superior derecha, aparece Python3, pincha sobre dicho texto y escoge la opción «PySpark» para seleccionar el uso de Spark mediante Python.

Después de realizar la parte 2, responde lo siguiente:

  1. Cuando se pide calcular los vuelos que llegan con retraso positivo, ¿a qué se refiere el enunciado?
  1. A que se deben seleccionar solo aquellos retrasos cuyo mínimo sea mayor que cero.
  2. A que se debe incluir la condición .where(“arr_delay > 0 ”)
  3. A que, previamente, se debe filtrar el dataframe con el campo de retrasos mayor que cero.
  4. Ninguna de las anteriores.

  1. Cuando piden calcular el retraso medio por separado para cada aeropuerto de destino, lo correcto es:
  1. Sobre el DF resultante de dicha operación de filtrado, agrupar por el aeropuerto de destino.
  2. En cada uno de los grupos resultantes calculamos la media de todos los valores de la columna «arr_delay» de las filas que forman dicho grupo.
  3. Ponerle un nombre a la columna resultante, por ejemplo, «retraso_medio».
  4. Todas las anteriores.

  1. En relación con la pregunta anterior, la siguiente afirmación es correcta:
  1. Cada grupo está formado por todas aquellas filas (vuelos) que comparten distinto valor de «dest» (destino).
  2. El DF resultante de esta agregación tendrá tantas filas como aeropuertos haya en una única ciudad.
  3. Como queremos saber cuáles son los aeropuertos con mayor retraso medio a la llegada, es necesario ordenar dicho DF descendentemente por la columna «retraso_medio», lo que dejará en las primeras filas del DF resultante de la ordenación a aquellos aeropuertos con el mayor retraso medio.
  4. Aún sin ordenar, la primera fila será siempre el aeropuerto con el máximo retraso medio, la segunda será el aeropuerto con el segundo mayor retraso medio de entre todos los aeropuertos de destino, etc.
  • Parte 3. Spark MLlib. Las instrucciones se encuentran en el notebook.
  1. Para llevar a cabo la creación de los índices en el ejercicio 3, se debe utilizar una de las siguientes instrucciones:
  1. StringIndexer().setInputCol("monthIndexed ").setOutputCol("month")
  2. StringIndexer().setInputCol("carrierIndexed ").setOutputCol("carrier")
  3. StringIndexer().setOutputCol("monthIndexed ").setOutputCol("month")
  4. Ninguna de las anteriores.

  1. En el ejercicio 3, la siguiente afirmación es correcta:
  1. La columna objetivo no debe formar parte de esta lista, puesto que no es una variable explicativa y, por tanto, no debe incluirse en la columna de tipo vector que el vectorAssembler nos devolverá como salida.
  2. La columna objetivo debe formar parte de esta lista, puesto que no es una variable explicativa y, por tanto, no debe incluirse en la columna de tipo vector que el vectorAssembler nos devolverá como salida.
  3. La columna objetivo debe formar parte de esta lista, puesto que es una variable explicativa y, por tanto, debe incluirse en la columna de tipo vector que el vectorAssembler nos devolverá como salida.
  4. Ninguna de las anteriores.

Anexo: creación de un clúster en Google Cloud

Cuando se dispone de un clúster en un entorno real, generalmente se instala, en cada uno de los nodos, una distribución del sistema operativo Linux y, sobre este, Spark, HDFS y el resto de las herramientas (Kafka, Hive, etc.).

Para que funcionen correctamente, se configura cada una de ellas, indicando las direcciones IP del resto de los nodos y algunos detalles, como qué nodo es el namenode y cuál el datanode (HDFS), qué nodo de Spark hace el papel de máster, etc.

...

Descargar como (para miembros actualizados)  txt (11.6 Kb)   pdf (397.1 Kb)   docx (433.9 Kb)  
Leer 7 páginas más »
Disponible sólo en Clubensayos.com