我想知道是否可以为PIG编写一个用户定义的存储函数,它在数据/输入元组上迭代两次。
我在这里阅读http://pig.apache.org/docs/r0.7.0/udf.html#Store+Functions如何编写自己的商店功能,例如通过实施自己的" getNext()"方法。 但是,对于我的用例,有必要在" getNext()"中看到每个元组两次。方法,所以我想知道是否有办法,例如通过某种方式重新设置读者或覆盖其他方法...
附加信息:我正在寻找一种从元组1迭代到元组n再从1再到n的方法。
有没有人知道如何做这样的事情?
谢谢! 塞巴斯蒂安
答案 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;
}
}