将一个记录值与其他记录值进行比较并找出Pig中的差异

时间:2014-08-02 19:01:48

标签: apache-pig

任何人都可以帮我解决如何编写Pig脚本以满足以下要求吗? 想象一下1,2,3,4天和100,120等代表到目前为止的行程距离。问题是如何使用Pig脚本找出每天行进的距离?

输入文件:

1    100
2    120
3    165
4    193

预期产出:

1   100   
2   20
3   45
4   28 

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

请检查以下代码:
data = load'dataa'使用PigStorage()as(seq:int,value:int);

firstrow =通过seq == 1过滤数据;

newdata = foreach数据生成seq + 1作为newseq,值作为newval;
join =由seq连接数据,newdata由newseq连接;
remainingrows = foreach join生成data :: seq as seq,data :: value - newdata :: newval as value;

out = union firstrow,剩余部分;
倾销;

只要第一列包含唯一编号,此代码就可以正常工作。如果没有这样的规定,那么将使用map-reduce程序生成数字,然后应用相同的逻辑。