Pig的滞后/差异

yftpprvb  于 2021-06-25  发布在  Pig
关注(0)|答案(1)|浏览(385)

有没有办法在pig中产生“列”滞后或差异?下面是我想做的一个例子,从r转录过来:

Value           Value.Diff
1        0.209                NA
2        0.198            -0.011
3        0.187            -0.011
4        0.176            -0.011
5        0.168            -0.008
6        0.159            -0.009

我意识到,考虑到pig数据存储的分布式特性(大概是分布式的),这可能会很棘手,但是考虑到pig0.11+允许您对元组进行排序,我认为这是可能的。

7fhtutme

7fhtutme1#

这样的方法应该有用:

values = rank values by some_field;
values = foreach values generate $0 as this_rank, $0 - 1 as prev_rank, value;
copy   = foreach values generate *;
pairs  = join values by this_rank, copy by prev_rank;
diffs  = foreach pairs generate this_rank, values::value - copy::value as diff;

相关问题