编写udf函数,进行业务处理

元数据

s number
京 2
冀 4
吉 2
川 2
桂 4
沪 601
津 1
浙 50
湘 1
琼 1
皖 57
粤 5
苏 130
豫 9
贵 1
赣 10
辽 1
鄂 3
闽 9
鲁 15
黑 1

udf函数

package udf;

import org.apache.hadoop.hive.ql.exec.UDF;

import java.util.HashMap;

//
public class UdfDemo_Two extends UDF {

    static HashMap<String,String> map = new HashMap<>();
    static {
        map.put("京","北京市");
        map.put("津","天津市");
        map.put("沪","上海市");
        map.put("渝","重庆市");
        map.put("冀","河北省");
        map.put("豫","河南省");
        map.put("云","云南省");
        map.put("辽","辽宁省");
        map.put("黑","黑龙江省");
        map.put("湘","湖南省");
        map.put("皖","安徽省");
        map.put("鲁","山东省");
        map.put("新","新疆维吾尔");
        map.put("苏","江苏省");
        map.put("浙","浙江省");
        map.put("赣","江西省");
        map.put("鄂","湖北省");
        map.put("桂","广西壮族");
        map.put("甘","甘肃省");
        map.put("晋","山西省");
        map.put("蒙","内蒙古");
        map.put("陕","陕西省");
        map.put("吉","吉林省");
        map.put("闽","福建省");
        map.put("贵","贵州省");
        map.put("粤","广东省");
        map.put("青","青海省");
        map.put("藏","西藏");
        map.put("川","四川省");
        map.put("宁","宁夏回族");
        map.put("琼","海南省");

    }
    public String evaluate(String name){
       String qc = map.get(name);
       return qc==null?"错误":qc;
    }
}

将udf函数加载进 hive

1、add jar /root/data/WordCount.jar;
//查看加载进hive中的都有哪些  jar
2、list jar;
// 在hive中创建一个 包含udf的方法        类的全限定名
3、create temporary function xss as 'udf.UdfDemo_Two';
// 调用刚才定义的包含udf的方法进行转换
select s,xss(s),number from res2;

结果

s name number
京 北京市 2
冀 河北省 4
吉 吉林省 2
川 四川省 2
桂 广西壮族 4
沪 上海市 601
津 天津市 1
浙 浙江省 50
湘 湖南省 1
琼 海南省 1
皖 安徽省 57
粤 广东省 5
苏 江苏省 130
豫 河南省 9
贵 贵州省 1
赣 江西省 10
辽 辽宁省 1
鄂 湖北省 3
闽 福建省 9
鲁 山东省 15
黑 黑龙江省 1

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值