PIG : Колони в редове

Имам файл, който съдържа това:

id_v^id_f^id_s1,id_s2,id_s3,id_s4
id_v1^id_f1^id_s2,id_s3,id_s4
id_v2^id_f2^id_s2,id_s1,id_s4

този файл е csv, разделен с "^". искам да го нормализирам по този начин с помощта на прасе:

id_v^id_f^id_s1
id_v^id_f^id_s2
id_v^id_f^id_s3
id_v^id_f^id_s4
id_v1^id_f2^id_s2
id_v1^id_f2^id_s3
id_v1^id_f2^id_s4
...

Може ли някой да ми помогне?

за разбирането


person Firas kh    schedule 07.07.2015    source източник


Отговори (1)


Добре. Да предположим, че това е моят файл. Да приемем, че името на файла е id_v.txt

id_v^id_f^id_s1,id_s2,id_s3,id_s4
id_v1^id_f1^id_s2,id_s3,id_s4
id_v2^id_f2^id_s2,id_s1,id_s4

По-долу е кодът на Pig

A = load '/user/cloudera/inputfiles/id_v.txt' using PigStorage('^') as(v:chararray,f:chararray,data:chararray);
B = foreach A generate v,f,FLATTEN(TOKENIZE(data)) as data;
dump B; 

По-долу е O/P, произведен от горния код..

(id_v,id_f,id_s1)
(id_v,id_f,id_s2)
(id_v,id_f,id_s3)
(id_v,id_f,id_s4)
(id_v1,id_f1,id_s2)
(id_v1,id_f1,id_s3)
(id_v1,id_f1,id_s4)
(id_v2,id_f2,id_s2)
(id_v2,id_f2,id_s1)
(id_v2,id_f2,id_s4)
person Surender Raja    schedule 07.07.2015
comment
Благодаря ти @Surender. Благодаря всичко, от което се нуждая. - person Firas kh; 08.07.2015