Hive(HUE)添加自定义函数

1、先建一个maven工程

poem中的配置部分如下



  
    nexus-aliyun
    Nexus aliyun
    http://maven.aliyun.com/nexus/content/groups/public
  



  
    junit
    junit
    4.12
    test
  
  
    org.apache.hadoop
    hadoop-client
    2.7.4
    provided
  
  
  
    org.apache.hive
    hive-cli
    1.2.1
    provided
  

 2、定义一个类继承自 UDF(import org.apache.hadoop.hive.ql.exec.UDF)

如:该类实现 long 形式的 ip 地址转回正常的 ip

import org.apache.hadoop.hive.ql.exec.UDF;
public class IPUtil extends UDF {
    
    public String evaluate (final String s) {
    	Long numLong = 0L;
    	try {
    		numLong = Long.parseLong(s);
    	}
    	catch(NumberFormatException ex) {
    		return "error "+s;
    	}  
    	return this.longToIP(numLong);
    }
    
    public String longToIP(long longIp) {
        StringBuffer sb = new StringBuffer("");
        // 直接右移24位
        sb.append(String.valueOf((longIp >>> 24)));
        sb.append(".");
        // 将高8位置0,然后右移16位
        sb.append(String.valueOf((longIp & 0x00FFFFFF) >>> 16));
        sb.append(".");
        // 将高16位置0,然后右移8位
        sb.append(String.valueOf((longIp & 0x0000FFFF) >>> 8));
        sb.append(".");
        // 将高24位置0
        sb.append(String.valueOf((longIp & 0x000000FF)));
        return sb.toString();
    }
}

3、在根目录下执行 

mvn package

4、将jar包上传到 hdfs

5、打开hue,填写相关信息

Hive(HUE)添加自定义函数_第1张图片 

6、用sql测试

Hive(HUE)添加自定义函数_第2张图片

 

你可能感兴趣的:(JAVA学习笔记)