大数据

hive udf 函数:MD5

2017-09-25  本文已影响0人  Alijie

利用 hive 做数据查询或者分析的时候,原生的 hive 函数可能无法满足我们的需求,这时候我们可以自定义 hive udf,函数;

自定义 hive udf 函数,有以下两点要求:

实现 MD5 hive udf 函数注册

import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.hive.ql.exec.UDF;

import java.security.MessageDigest;

public class MD5 extends UDF {

    public String evaluate (final String str) {
        if (StringUtils.isBlank(str)){
            return "";
        }
        String digest = null;
        StringBuffer buffer = new StringBuffer();
        try {
            MessageDigest digester = MessageDigest.getInstance("md5");
            byte[] digestArray = digester.digest(str.getBytes("UTF-8"));
            for (int i = 0; i < digestArray.length; i++) {
                buffer.append(String.format("%02x", digestArray[i]));
            }
            digest = buffer.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return digest;
    }
    public static void main (String[] args ) {
        MD5 md5 = new MD5();
        System.out.println(md5.evaluate("   "));
    }
}

函数注册语句:

CREATE FUNCTION dna_code AS 'hive.udf.utils.DnaCode' USING JAR ‘具体 jar 包位置’
上一篇下一篇

猜你喜欢

热点阅读