gpt4 book ai didi

mysql - 组连接等同于 pig ?

转载 作者:可可西里 更新时间:2023-11-01 07:02:05 26 4
gpt4 key购买 nike

尝试在 Pig 上完成这项工作。 (寻找与 MySQL 等效的 group_concat())

例如,在我的表中,我有这个:(3fields- userid, clickcount,pagenumber)

155 | 2 | 12
155 | 3 | 133
155 | 1 | 144
156 | 6 | 1
156 | 7 | 5

期望的输出是:

155| 2,3,1 | 12,133,144

156| 6,7 | 1,5

如何在 PIG 上实现这一点?

最佳答案

grouped = GROUP table BY userid;
X = FOREACH grouped GENERATE group as userid,
table.clickcount as clicksbag,
table.pagenumber as pagenumberbag;

现在 X 将是:

{(155,{(2),(3),(1)},{(12),(133),(144)},
(156,{(6),(7)},{(1),(5)}}

现在您需要使用 builtin UDF BagToTuple :

output = FOREACH X GENERATE userid, 
BagToTuple(clickbag) as clickcounts,
BagToTuple(pagenumberbag) as pagenumbers;

output 现在应该包含您想要的内容。您也可以将输出步骤合并到合并步骤中:

    output = FOREACH grouped GENERATE group as userid, 
BagToTuple(table.clickcount) as clickcounts,
BagToTuple(table.pagenumber) as pagenumbers;

关于mysql - 组连接等同于 pig ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18780201/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com