ApachePig中的位操作?

bf1o4zei  于 2021-06-21  发布在  Pig
关注(0)|答案(1)|浏览(490)

我正在看参考手册,找不到任何按位操作/函数的文档。
例如,有没有什么方法可以在pig脚本中使用按位and操作(相当于hive中的“a&b”)呢?

e0uiprwp

e0uiprwp1#

您可以为此提供自定义自定义自定义项。见https://pig.apache.org/docs/r0.7.0/udf.html
在Pig的剧本里你会这么做

REGISTER myudfs.jar;

二进制和自定义项示例:

package myudfs;
import java.io.IOException;
import org.apache.pig.EvalFunc;
import org.apache.pig.data.Tuple;
import org.apache.pig.impl.util.WrappedIOException;

public class BitwiseAND extends EvalFunc (Integer)
{
    public String exec(Tuple input) throws IOException {
        // check input tuple:
        if (input == null || input.size() < 2)
            return null;
        try{
            return (Integer)input.get(0) & (Integer)input.get(1);
        }catch(Exception e){
            throw WrappedIOException.wrap("Caught exception processing input row ", e);
        }
    }
}

注意:这不是测试,它只是从Pig自定义项页面复制。

相关问题