Examen de MapReduce
Este examen consta de 5 preguntas prácticas. Para cada pregunta, se describe un conjunto de datos CSV y se solicita el diseño de un Mapper y un Reducer que realicen cálculos específicos.
Pregunta 1: Índice de Confort Ambiental (IoT)
Section titled “Pregunta 1: Índice de Confort Ambiental (IoT)”Contexto: Disponemos de sensores IoT en diferentes salas de un edificio que registran la temperatura y la humedad cada hora.
Formato CSV (sensores.csv):
id_dispositivo, timestamp, piso, id_sala, temperatura_c, humedad_relativa, estado_bateria, co2_level, ocupacion_sala, fecha_instalacion
Tarea: Desarrollar un proceso MapReduce que calcule el índice de calor medio por sala. El índice de calor (IC) de cada registro se calcula mediante la fórmula: IC = temperatura_c + (0.55 * humedad_relativa).
Pregunta 2: Consumo Eléctrico de Fábrica por Turnos
Section titled “Pregunta 2: Consumo Eléctrico de Fábrica por Turnos”Contexto: Una fábrica monitoriza el consumo eléctrico (en KW) de sus máquinas en distintos turnos.
Formato CSV (consumo.csv):
id_maquina, modelo_maquina, fecha, responsable_turno, turno, planta_fabrica, consumo_kw, voltaje_medio, vibracion_id, tiempo_activa_min
(Turnos: M - Mañana, T - Tarde, N - Noche)
Tarea: Diseñar un programa MapReduce que obtenga el consumo total acumulado por cada turno. Se deben ignorar los registros con un consumo superior a 500 KW, ya que se consideran errores de medición.
Pregunta 3: Valor de Inventario de Tienda
Section titled “Pregunta 3: Valor de Inventario de Tienda”Contexto: Un sistema de gestión de una tienda de electrónica tiene datos sobre el stock y el precio de los productos por categorías.
Formato CSV (inventario.csv):
id_producto, sku_barras, categoria, subcategoria, proveedor, stock_disponible, stock_minimo, precio_unidad, precio_coste, pasillo_almacen
Tarea: Implementar una solución MapReduce que devuelva el valor total del inventario para cada categoría. El valor de cada producto se calcula multiplicando su stock disponible por su precio unitario.
Pregunta 4: Estadísticas de Streaming de Video
Section titled “Pregunta 4: Estadísticas de Streaming de Video”Contexto: Una plataforma de video registra cuánto tiempo ven los usuarios cada video.
Formato CSV (streaming.csv):
usuario_id, pais_usuario, video_id, categoria_video, duracion_total_seg, segundos_vistos, dispositivo, calidad_video, bitrate_medio, buffer_count
Tarea: Crear un proceso MapReduce que determine el porcentaje medio de visualización por usuario. El porcentaje de visualización de un video se obtiene como (segundos_vistos / duracion_total_seg) * 100.
Pregunta 5: Puntuación de Usuarios (Sistema de Gamificación)
Section titled “Pregunta 5: Puntuación de Usuarios (Sistema de Gamificación)”Contexto: Un foro otorga puntos a los usuarios según sus acciones.
Formato CSV (acciones.csv):
usuario, email_anonimo, ip_acceso, fecha_registro, accion, categoria_accion, puntos_base, es_moderador, reputacion_previa, num_reportes_recibidos
(Acciones: “post”, “like”, “report”, etc. es_moderador es 0 o 1)
Tarea: Realizar un script MapReduce que calcule la puntuación total acumulada por cada usuario. Es importante tener en cuenta que si el usuario es moderador (es_moderador = 1), los puntos de sus acciones valen el doble.