0
我是Pig腳本的新手,並試圖修改一些現有的豬腳本以從日誌文件中提取一些數據。如何在Pig中按列添加和過濾2個關係?
E.g.我有2個日誌文件,一個與該模式爲:
message Class {
message Student {
optional int32 uid = 1;
optional string name = 2;
}
optional int32 cid = 1;
repeated Student students = 2;
}
加載後,我覺得一個包(比如,BAG1)創建(糾正我,如果我錯了):
bag1:
{
(uid1, {(cid11, name11), (cid12, name12), (cid13, name13), ...}),
(uid2, {(cid21, name21), (cid22, name22), (cid23, name23), ...}),
...
}
而另一個日誌文件很簡單,生成的包(bag2)就是這樣。
bag2:
{
(name11),
(name13),
(name22),
...
}
我要的是,讓所有從BAG1行如果BAG2任何名稱包含的行內,如:
result bag:
{
(uid1, (name11, name13)),
(uid2, (name22)),
}
我想我會需要做一些加盟/過濾器在這2袋,但不知道如何。 我嘗試了下面的腳本片段,但它甚至不是有效的腳本。
res = FOREACH bag1 {
names = FOREACH students GENERATE name;
xnames = JOIN names by name, bag2 by name;
GENERATE cid, xnames;
};
FILTER res BY not IsEmpty(xnames);
所以任何人都可以請。給我一些腳本的幫助?