如何在PIG存储功能期间多次迭代数据

时间:2014-04-27 18:05:18

标签: apache-pig

我想知道是否可以为PIG编写一个用户定义的存储函数,它在数据/输入元组上迭代两次。

我在这里阅读http://pig.apache.org/docs/r0.7.0/udf.html#Store+Functions如何编写自己的商店功能,例如通过实施自己的" getNext()"方法。 但是,对于我的用例,有必要在" getNext()"中看到每个元组两次。方法,所以我想知道是否有办法,例如通过某种方式重新设置读者或覆盖其他方法...

附加信息:我正在寻找一种从元组1迭代到元组n再从1再到n的方法。

有没有人知道如何做这样的事情?

谢谢! 塞巴斯蒂安

1 个答案:

答案 0 :(得分:0)

这是我的头脑,但你可以尝试这样的事情:

imports here ...;

class MyStorage extends PigStorage {

private int counter = 0;
private Tuple cachedTuple = null;

public Tuple getNext(){
    if (this.counter++ % 2 == 0) {
         this.cachedTuple = super.getNext();
    }
    return this.cachedTuple;
}
}