forked from profemronda/BIGDATA
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathproceso_opiniones.pig
28 lines (19 loc) · 978 Bytes
/
proceso_opiniones.pig
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
-- 1.1 Fase de Extracción LOAD
csv_data = LOAD '/user/cloudera/pig/Eopinions.csv' USING PigStorage (',') as
(class:chararray, opinion:chararray);
-- DUMP csv_data; -- para comprobaciones
-- 1.2 Generar colección de comentarios (campo 1)
comentarios = FOREACH csv_data GENERATE $1;
-- DUMP csv_data; -- para comprobaciones
-- 2.1 Procesar cada comentario y trozearlo en palabras
-- TOKENIZE: cadena -> bolsa de palabras (bag of words)
-- FLATTEN: desanida/aplana tuplas bosas de palabras
wordfile_flat = FOREACH comentarios GENERATE FLATTEN (TOKENIZE($0)) as wordin;
-- 2.2 Agrupación por palabras (GROUP BY)
wordfile_grpd = GROUP wordfile_flat by wordin;
-- 2.3 Calculo frecuencia de cada palabra
word_counts = FOREACH wordfile_grpd GENERATE group, COUNT(wordfile_flat.wordin) as cnt;
-- 2.4 Ordenación/Ranking de palabras por frecuencia
word_count_des = ORDER word_counts BY cnt DESC;
-- 3. Carga/almacenamiento
STORE word_count_des into '/user/cloudera/pig/out';