Hadoop ApachePig:如何比较当前元组值和prev值?
我有一个查询,需要将元组的前一个值与当前值进行比较,并标记该值是否有变化 输入:Hadoop ApachePig:如何比较当前元组值和prev值?,hadoop,apache-pig,Hadoop,Apache Pig,我有一个查询,需要将元组的前一个值与当前值进行比较,并标记该值是否有变化 输入: year, AccNo 1991, 1234 1992, 1234 1993, 1234 1991, 1235 1992, 1235 1991, 1236 1991, 1237 输出: recyear, AccNo, firstrec 1991, 1234, 1 1992, 1234, 0 1993, 1234, 0 1991, 1235, 1 1992, 1235, 0 1991, 1236,
year, AccNo
1991, 1234
1992, 1234
1993, 1234
1991, 1235
1992, 1235
1991, 1236
1991, 1237
输出:
recyear, AccNo, firstrec
1991, 1234, 1
1992, 1234, 0
1993, 1234, 0
1991, 1235, 1
1992, 1235, 0
1991, 1236, 1
1991, 1237, 1
我的问题是:有没有办法通过使用内置的Pig函数来实现这一点,这些函数允许我们根据帐号生成firstrec值
--添加两个列组rank1 = rank input BY Accno,recyear;
rank2 = rank rank1 by Accno;
--创建第一个记录
output = foreach rank2 generate *, ($0==$1?1:0) as first_rec;
你能解释一下你在上面的输出中用来计算列
firstrec
的逻辑吗?sudar,它似乎工作不正常…我想知道我们是否可以尝试使用任何内置函数,如Stitch和Over。我想知道逻辑(我指的是你的要求)因此,我们可以建议您如何使用Pig实现。所有帐号值都在排序描述中。如果帐号发生更改,我希望生成“1”,如果帐号没有更改,则生成“0”。