我正在使用Pig 10.0
。我想在foreach中合併包。比方說,我有以下visitors
別名:Pig 10.0 - 將元組和集合包裝在一個foreach中
(a, b, {1, 2, 3, 4}),
(a, d, {1, 3, 6}),
(a, e, {7}),
(z, b, {1, 2, 3})
我想組第一場的元組,並用一組語義合併袋得到以下下列元組:
({1, 2, 3, 4, 6, 7}, a, 6)
({1, 2, 3}, z, 3)
第一領域是袋子與一套語義的結合。元組的第二個字段是組字段。第三個字段是包裏的數字項目。
我想圍繞以下幾個代碼變化(更換SetUnion由集團/鮮明等),但始終沒能達到想要的行爲:
DEFINE SetUnion datafu.pig.bags.sets.SetUnion();
grouped = GROUP visitors by (FirstField);
merged = FOREACH grouped {
VU = SetUnion(visitors.ThirdField);
GENERATE
VU as Vu,
group as FirstField,
COUNT(VU) as Cnt;
}
dump merged;
你能解釋一下,我錯了,以及如何實現期望的行爲?