Proyectospark 1
Proyectospark 1
Proyectospark 1
INTRODUCCIÓN AL EJERCICIO DE
EVALUACIÓN DE SPARK
Una compañía de telecomunicaciones quiere obtener insights de la muestra de 30
clientes obtenida al final de este mes y con información también del mes anterior. Los
analistas de datos tendrán que agregar esta información, que se proporciona para
responder a 10 cuestiones que ha planteado la directiva.
Las tablas de input son las mismas que se utilizaron en el ejercicio guiado de Spark:
• df_clientes: muestra informacion de cada cliente (id, nombre, edad, ciudad, país).
• df_facturas_mes_ant: muestra la factura del mes anterior junto con el plan que tenían
contratado para cada cliente. Un mismo cliente puede tener contratadas dos ofertas
con la compañía, en cuyo caso habrá dos filas (de ahora en adelante, registros) con el
mismo “id_cliente” y distinto “id_oferta”.
CASO 1: mostrar por pantalla el número total de clientes del mes anterior con más de
un contrato con la compañía.
CASO 2: generar un nuevo dataframe de facturas del mes actual que asigne un 7 % de
descuento a todos los contratos de clientes que ya existían en el mes anterior (los
contratos de los clientes nuevos seguirán con el mismo importe). Mantener la columna
"importe" y crear una nueva columna "importe_dto" con el nuevo importe, casteada a
dos decimales.
Mostrar, además, el resultado ordenado por los campos “id_cliente” ascendente e
importe descendente.
Obtener una tabla resumen que extraiga para cada para cada uno de los cuatro grupos
identificados la media de consumo de datos, SMS enviados, “minutos_movil”,
“minutos_fijo”, con todos los campos casteados a dos decimales y ordenar el DF por
“grupo_edad” ascendente. Extraer conclusiones.
Análisis:
El grupo 1 en el cual encontramos clientes menores de 26 son los que más datos consumen, en
promedio, y los que menos SMS y llamadas a teléfonos fijos realizan; ratificando lo que se
conoce de las nuevas generaciones. En el extremo tenemos los clientes mayores de 65 quienes
más llaman a fijos y envían SMS, pero consumen un menor volumen de datos. El segmento
comprendido entre 26 y 40 navegan entre los extremos mencionados.
CASO 5: se quiere realizar un estudio por sexo para analizar si son las mujeres o los
hombres quienes consumen más datos durante el fin de semana y hacen más llamadas
desde el móvil. Para ello, se deberá, sin ayuda de un calendario, extraer el día de la
semana al que corresponde cada una de las fechas del mes de agosto para saber cuáles
son fin de semana (se consideran días de fin de semana el viernes, sábado y domingo).
El DF a obtener deberá tener dos registros con las siguientes columnas: sexo,
“total_mins_movil_finde”, “total_datos_moviles_finde”. Extraer conclusiones tras
presentar el DF resultante.
Análisis:
El grupo de mujeres consumen más datos durante el fin de semana que hombres, así mismo las
mujeres son las que realizan más llamadas al tener más minutos móviles
CASO 6: obtener un DF que contenga cuatro registros, que serán el cliente de cada grupo
edad que más datos móviles ha consumido durante los 15 primeros días del mes de
agosto
(día 15 incluido en el cálculo).
CASO 7: interesa averiguar los minutos de llamadas de los clientes que son nuevos este
mes para realizar un estudio del impacto que tendrán en caso de producirse un pico de
volumen de llamadas en la red.
Obtener un DF que contenga solo a los clientes nuevos de este mes con cuatro
columnas:
“nombre_cliente_nuevo”, edad, “importe_total_mes_actual”, “total_minutos”.
Notas: si hay solo dos clientes nuevos, el DF a obtener tendrá solo dos registros. Ha de
tenerse presente que a la hora de hacer un join, la clave de unión debe ser única en la
tabla de la derecha o, de otra manera, se multiplicarán los registros resultantes de
manera descontrolada.
Tener en cuenta que, si un cliente nuevo tiene dos ofertas contratadas, la columna
“importe_mes_actual” deberá contener la suma de los importes de ambas ofertas.
CASO 8: obtener un DF que contenga, para los clientes que ya existían en el mes
anterior y siguen dados de alta este mes, tres columnas: nombre, edad,
“n_dias_sin_sms”. La ultima columna se refiere a obtener el número de días que el
cliente no ha enviado ningún SMS durante el mes de agosto. Forzar al comando show a
que muestre 30 valores.
Si en todo el mes el cliente "A" no envió SMS tres días, esta columna deberá contener el
valor “3”. Si hubiera algún cliente que hubiese enviado al menos un SMS todos los días
del mes, esta columna tendrá valor “0”).
CASO 9: se desea obtener un coeficiente de ponderación que permita evaluar a cada
cliente en función de su consumo para identificar los clientes más atractivos que forman
parte de la compañía.
Este cálculo solo se realizará para los clientes que tengan una sola oferta
contratada con la compañía.
Este coeficiente se obtendrá en base a los consumos diarios y, por tanto, solo se tendrán
en cuenta los clientes que existen en el mes de agosto, ya que no existen datos de
consumo del mes de julio. Las ponderaciones que se darán a cada uno de los consumos
son las siguientes:
1. Obtener la suma de todos los días de cada uno de los cuatro consumos para cada
cliente.
2. Obtener el máximo del cálculo anterior de todos los clientes para poder obtener un
valor entre cero y uno para cada uno de los cuatro consumos (recordar que solo
aplica para los clientes con una sola oferta contratada en el mes de agosto. El
cliente con mayor consumo de datos tendrá un valor de “1” en la columna
“datos_móviles_0_1”).
correspondiente (por ejemplo, la columna "datos_moviles_0_1" se multiplicará por
la ponderación de datos móviles 0,4).
4. Por último, se calculará la suma de las cuatro ponderaciones obtenidas para calcular
el coeficiente de ponderación buscado (“coeficiente_cliente”), casteado a tres
decimales.
Obtener un DF que contiene cuatro registros, uno para cada “grupo_edad” y tres
columnas: “grupo_edad”, “fecha_20_GB”, “datos_moviles_total_grupo_3_clientes”.