【发布时间】:2015-07-28 11:09:38
【问题描述】:
我是 Apache Pig 的新手。我想将以下输入拆分并展平为我所需的输出,例如谁都查看了该产品。
我的输入:(UserId, ProductId)
12345 123456,23456,987653
23456 23456,123456,234567
34567 234567,765678,987653
我需要的输出:(ProductId, UserId)
123456 12345
123456 23456
23456 12345
23456 23456
987653 12345
987653 34567
234567 23456
234567 34567
765678 34567
我的猪脚本:
a = load '/home/hadoopuser/ips' using PigStorage('\t') as (key:chararray, val:chararray);
b = foreach a generate key as ky1, FLATTEN(TOKENIZE(val)) as vl1;
c = group b by vl1;
d = foreach c generate group as vl2, $1 as ky2;
e = foreach d generate vl2, BagToString(ky2) as kyy;
f = foreach e generate vl2 as vl3,FLATTEN(STRSPLIT(kyy,'_')) as ky3;
g = foreach f generate vl3, FLATTEN(TOKENIZE(ky3)) as kk1;
dump g;
我得到以下输出,它消除了重复(重复)值,
(23456,12345)
(123456,12345)
(234567,23456)
(765678,34567)
(987653,12345)
我不知道如何解决这个问题。谁能帮我解决这个问题?以及如何以简单的方式做到这一点?
【问题讨论】:
标签: mapreduce apache-pig