gpt4 book ai didi

hadoop - 分组后如何计算计数之间的差异?

转载 作者:行者123 更新时间:2023-12-02 22:06:52 24 4
gpt4 key购买 nike

我将数据分组为以下格式:(GroupID,计数)。如下所示,我想计算计数之间的差,同时保留GroupID。因此,它变成(1,288)(2,2),(3,66)...。
我尝试使用SUBTRACT函数,但不确定如何从当前记录中减去先前的记录。第二张图片显示了计数部分。减法部分失败。

enter image description here
enter image description here

最佳答案

这很难实现,但是可以使用JOIN完成。从第二行开始,以ID 1即($ 0-1)生成另一个关系。加入2关系并产生差值。为Id加1得到原始关系ids.Ununion第一行与包含差异的行。

A = foreach win_grouped generate $0 as id,count($1) as c; -- (1,228),(2,230)... so on
A1 = filter A by ($0 > 1); -- (2,230),(3,296)... so on
B = foreach A1 generate ($0 - 1) as id,$1 as c; -- (1,230),(2,296)... so on
AB = join A by id,B by id; -- (1,228,1,230),(2,230,2,296)...so on
C = foreach AB generate (A::id + 1),(B::c - A::c) -- (2,2),(3,66)...so on
D = limit A 1; -- (1,288)
E = UNION D,C; -- (1,288),(2,2),(3,66)...so on
DUMP E;

关于hadoop - 分组后如何计算计数之间的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36562254/

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