Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CASO TELCO
Objetivo
Explorar la base Telco llamada cellsegmentacion.csv, almacenar en un directorio distribuido
HDFS, crear base de metadatos en HIVE y realizar consultas mediante HiveQL
Procedimiento
1. Análisis Exploratorio de los datos:
Se utiliza Facets:
a. https://pair-code.github.io/facets/
b. Data: cellsegmentacion.csv
c. Objetivo: Cargar los datos y explorar mediante gráficas.
ENTORNO LOCAL (LINUX)
En componentes seleccionar:
$ ls
Para ubicarnos en el entorno Hadoop es necesario utilizar el comando de entrada hdfs dfs,
seguido de los comandos Linux. Por ejemplo, para listar el contenido de un directorio en el
entorno Hadoop, en HDFS:
Comandos básicos
1. Listar el nombre del directorio de trabajo actual
$ pwd
5. Crear tres carpetas en HDFS. Ingresar los comandos uno seguido de otro
$ hdfs dfs -mkdir /user/user_<nap>/
Observación:
El campo: user_<nap> es la inicial de tu nombre y apellido, por ejemplo: Laren
Osorio→ user_lot
(*) Esta será usada a la lo largo de la sesión
Observación:
Para conocer el valor de <local> se debe de introducir el comando pwd en el entorno
Linux
1. Para ingresar al entorno Hive podemos utilizar cualquier de los dos comandos:
$ hive
$ beeline -u jdbc:hive2://
Observación:
● Tablas gestionadas: Por defecto Hive crea tablas gestionadas, donde los ficheros,
metadatos y estadísticas son administrados por procesos internos de Hive.
Una tabla gestionada es guardada en la propiedad hive.metastore.warehouse.dir o en
el directorio hdfs /user/apps/hive/warehouse/dbname.db/tablename/.
Si una tabla gestionada es borrada, los datos y los metadatos asociados a la tabla o
partición son borrados.
● Tablas externas: Las tablas externas tienen sus metadatos o esquemas en ficheros
externos, son archivos que pueden ser accedidos y administrados por procesos
desde fuera de Hive.
Hacen referencia a datos de otras bases de datos. El directorio de las tablas puede
ser dentro de hdfs o file storage.
#####################################################################
select
r.casado as casado,
r.genero as genero,
CASE
WHEN r.region = 'Zona 1' THEN 'Lima'
WHEN r.region = 'Zona 2' THEN 'Callao'
ELSE 'Otras Regiones'
END AS region_zona,
avg(r.minutos_preferido) as prom_minutos_preferidos,
avg(r.adicionales) as prom_min_adicionales,
avg(r.ingreso_miles) as prom_ingreso_miles
from bd_telco_user_<nap>.tb_cs_user_<nap>_loc as r
where r.Edad < 60
group by
r.casado,
r.genero,
r.region;
select
r.region as region,
r.casado as casado,
r.genero as genero,
avg(r.minutos_preferido) as prom_minutos_preferidos
from bd_telco_user_lot.tb_cs_user_lot_loc as r
group by
r.region,
r.casado,
r.genero;
#####################################################################
select
r.casado as casado,
r.genero as genero,
CASE
WHEN r.region = 'Zona 1' THEN 'Lima'
WHEN r.region = 'Zona 2' THEN 'Callao'
ELSE 'Otras Regiones'
END AS region_zona,
avg(r.minutos_preferido) as prom_minutos_preferidos,
avg(r.adicionales) as prom_min_adicionales,
avg(r.ingreso_miles) as prom_ingreso_miles
from bd_telco_user_lot.tb_cs_user_lot_loc as r
where r.Edad < 60
group by
r.casado,
r.genero,
r.region;
set hive.exec.dynamic.partition.mode=nonstrict;
################################################################
select*from bd_telco_<nap>_lot.tb_pt_din_zona_user_lot;
################################################################
set hive.exec.dynamic.partition.mode=nonstrict;
################################################################
select*from bd_telco_user_lot.tb_pt_din_zona_user_lot;