Apache Pig中的按位操作?

时间:2016-11-15 13:47:43

标签: apache-pig

我正在查看reference manual,但找不到任何按位操作/函数的文档。

有没有办法在Pig脚本中使用按位AND操作(相当于Hive中的“A& B”)?

1 个答案:

答案 0 :(得分:0)

您可以为此提供自定义UDF。例如。见https://pig.apache.org/docs/r0.7.0/udf.html

在猪脚本中你会做

REGISTER myudfs.jar;

BinaryAND UDF的例子:

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 udf页面复制过来。