【问题标题】:Bitwise operations in Apache Pig?Apache Pig 中的按位运算?
【发布时间】:2016-11-15 13:47:43
【问题描述】:

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

有什么方法可以在 Pig 脚本中使用,例如,按位与运算(相当于 Hive 中的“A & B”)?

【问题讨论】:

  • 如果没有直接支持,可以使用DEFINE调用perl、bash等外部脚本。创建bitwise_or、bitwise_and等简单脚本

标签: apache-pig


【解决方案1】:

您可以为此提供自定义 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 页面复制而来。

【讨论】:

    猜你喜欢
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    • 2014-11-05
    • 2021-12-20
    • 1970-01-01
    相关资源
    最近更新 更多