我正在查看reference manual,但找不到任何按位操作/函数的文档。
有没有办法在Pig脚本中使用按位AND操作(相当于Hive中的“A& B”)?
答案 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页面复制过来。