Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache pig 如何在PIG store函数期间对数据进行多次迭代_Apache Pig - Fatal编程技术网

Apache pig 如何在PIG store函数期间对数据进行多次迭代

Apache pig 如何在PIG store函数期间对数据进行多次迭代,apache-pig,Apache Pig,我想知道是否有可能为PIG编写一个用户定义的存储函数,在数据/输入元组上迭代两次 我在这里读到了如何编写自己的存储函数,例如通过实现自己的“getNext()”方法。 然而,对于我的用例,在“getNext()”方法中必须两次查看每个元组,因此我想知道是否有办法做到这一点,例如通过以某种方式重置读取器或覆盖其他方法 附加信息:我正在寻找一种从元组1迭代到元组n,然后再从1迭代到n的方法 有人知道怎么做那样的事吗 谢谢! 塞巴斯蒂安这是我的想法,但你可以试试这样的东西: imports here

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

我在这里读到了如何编写自己的存储函数,例如通过实现自己的“getNext()”方法。 然而,对于我的用例,在“getNext()”方法中必须两次查看每个元组,因此我想知道是否有办法做到这一点,例如通过以某种方式重置读取器或覆盖其他方法

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

有人知道怎么做那样的事吗

谢谢!
塞巴斯蒂安

这是我的想法,但你可以试试这样的东西:

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;
}
}

但这会让我在第二次发生之后马上看到第一次。我在寻找一个从1到n的迭代,然后再从1到n。很抱歉没有说清楚。无论如何谢谢你。