zoukankan      html  css  js  c++  java
  • UDF-java获取名字中的姓

    1.使用方法

        在hive中加载jar包,调用udf函数

    #从名字中获取姓
    add jar ${scriptDir}/GetLastNameUDF.jar;
    create temporary function getLastName as 'com.st.udf.GetLastNameUDF';
    #或者(前提是将GetLastNameUDF.jar包上传到/HIVE_UDF目录)
    create temporary function getLastName as 'com.st.udf.GetLastNameUDF'  using jar 'hdfs:///HIVE_UDF/GetLastNameUDF.jar';

      select '江XX',getLastName('江XX') from dual;

    2.UDF开发

        

    package com.st.udf;
    
    import java.util.ArrayList;
    
    import org.apache.hadoop.hive.ql.exec.UDF;
    
    /**
     * 
     * @author zjdc
     * 
     * 获取姓名中的姓氏
     * 
     */
    public class GetLastNameUDF extends UDF{
        
        public static ArrayList lastNameList = new ArrayList();
        
        /**
         * 构造函数,加载姓氏数据
         */
        public GetLastNameUDF() {
            lastNameList.add("1,赵");
            lastNameList.add("2,钱");
            lastNameList.add("3,孙");
            lastNameList.add("4,李");
            lastNameList.add("5,周");
            lastNameList.add("6,吴");
            lastNameList.add("7,郑");
            lastNameList.add("8,王");
            lastNameList.add("9,冯");
            lastNameList.add("10,陈");
            lastNameList.add("11,褚");
            lastNameList.add("12,卫");
            lastNameList.add("13,蒋");
            lastNameList.add("14,沈");
            lastNameList.add("15,韩");
            lastNameList.add("16,杨");
            lastNameList.add("17,朱");
            lastNameList.add("18,秦");
            lastNameList.add("19,尤");
            lastNameList.add("20,许");
            lastNameList.add("21,何");
            lastNameList.add("22,吕");
            lastNameList.add("23,施");
            lastNameList.add("24,张");
            lastNameList.add("25,孔");
            lastNameList.add("26,曹");
            lastNameList.add("27,严");
            lastNameList.add("28,华");
            lastNameList.add("29,金");
            lastNameList.add("30,魏");
            lastNameList.add("31,陶");
            lastNameList.add("32,姜");
            lastNameList.add("33,戚");
            lastNameList.add("34,谢");
            lastNameList.add("35,邹");
            lastNameList.add("36,喻");
            lastNameList.add("37,柏");
            lastNameList.add("38,水");
            lastNameList.add("39,窦");
            lastNameList.add("40,章");
            lastNameList.add("41,云");
            lastNameList.add("42,苏");
            lastNameList.add("43,潘");
            lastNameList.add("44,葛");
            lastNameList.add("45,奚");
            lastNameList.add("46,范");
            lastNameList.add("47,彭");
            lastNameList.add("48,郎");
            lastNameList.add("49,鲁");
            lastNameList.add("50,韦");
            lastNameList.add("51,昌");
            lastNameList.add("52,马");
            lastNameList.add("53,苗");
            lastNameList.add("54,凤");
            lastNameList.add("55,花");
            lastNameList.add("56,方");
            lastNameList.add("57,俞");
            lastNameList.add("58,任");
            lastNameList.add("59,袁");
            lastNameList.add("60,柳");
            lastNameList.add("61,酆");
            lastNameList.add("62,鲍");
            lastNameList.add("63,史");
            lastNameList.add("64,唐");
            lastNameList.add("65,费");
            lastNameList.add("66,廉");
            lastNameList.add("67,岑");
            lastNameList.add("68,薛");
            lastNameList.add("69,雷");
            lastNameList.add("70,贺");
            lastNameList.add("71,倪");
            lastNameList.add("72,汤");
            lastNameList.add("73,滕");
            lastNameList.add("74,殷");
            lastNameList.add("75,罗");
            lastNameList.add("76,毕");
            lastNameList.add("77,郝");
            lastNameList.add("78,邬");
            lastNameList.add("79,安");
            lastNameList.add("80,常");
            lastNameList.add("81,乐");
            lastNameList.add("82,于");
            lastNameList.add("83,时");
            lastNameList.add("84,傅");
            lastNameList.add("85,皮");
            lastNameList.add("86,卞");
            lastNameList.add("87,齐");
            lastNameList.add("88,康");
            lastNameList.add("89,伍");
            lastNameList.add("90,余");
            lastNameList.add("91,元");
            lastNameList.add("92,卜");
            lastNameList.add("93,顾");
            lastNameList.add("94,孟");
            lastNameList.add("95,平");
            lastNameList.add("96,黄");
            lastNameList.add("97,和");
            lastNameList.add("98,穆");
            lastNameList.add("99,萧");
            lastNameList.add("100,尹");
            lastNameList.add("101,姚");
            lastNameList.add("102,邵");
            lastNameList.add("103,堪");
            lastNameList.add("104,汪");
            lastNameList.add("105,祁");
            lastNameList.add("106,毛");
            lastNameList.add("107,禹");
            lastNameList.add("108,狄");
            lastNameList.add("109,米");
            lastNameList.add("110,贝");
            lastNameList.add("111,明");
            lastNameList.add("112,臧");
            lastNameList.add("113,计");
            lastNameList.add("114,伏");
            lastNameList.add("115,成");
            lastNameList.add("116,戴");
            lastNameList.add("117,谈");
            lastNameList.add("118,宋");
            lastNameList.add("119,茅");
            lastNameList.add("120,庞");
            lastNameList.add("121,熊");
            lastNameList.add("122,纪");
            lastNameList.add("123,舒");
            lastNameList.add("124,屈");
            lastNameList.add("125,项");
            lastNameList.add("126,祝");
            lastNameList.add("127,董");
            lastNameList.add("128,粱");
            lastNameList.add("129,杜");
            lastNameList.add("130,阮");
            lastNameList.add("131,蓝");
            lastNameList.add("132,闵");
            lastNameList.add("133,席");
            lastNameList.add("134,季");
            lastNameList.add("135,麻");
            lastNameList.add("136,强");
            lastNameList.add("137,贾");
            lastNameList.add("138,路");
            lastNameList.add("139,娄");
            lastNameList.add("140,危");
            lastNameList.add("141,江");
            lastNameList.add("142,童");
            lastNameList.add("143,颜");
            lastNameList.add("144,郭");
            lastNameList.add("145,梅");
            lastNameList.add("146,盛");
            lastNameList.add("147,林");
            lastNameList.add("148,刁");
            lastNameList.add("149,钟");
            lastNameList.add("150,徐");
            lastNameList.add("151,邱");
            lastNameList.add("152,骆");
            lastNameList.add("153,高");
            lastNameList.add("154,夏");
            lastNameList.add("155,蔡");
            lastNameList.add("156,田");
            lastNameList.add("157,樊");
            lastNameList.add("158,胡");
            lastNameList.add("159,凌");
            lastNameList.add("160,霍");
            lastNameList.add("161,虞");
            lastNameList.add("162,万");
            lastNameList.add("163,支");
            lastNameList.add("164,柯");
            lastNameList.add("165,昝");
            lastNameList.add("166,管");
            lastNameList.add("167,卢");
            lastNameList.add("168,莫");
            lastNameList.add("169,经");
            lastNameList.add("170,房");
            lastNameList.add("171,裘");
            lastNameList.add("172,缪");
            lastNameList.add("173,干");
            lastNameList.add("174,解");
            lastNameList.add("175,应");
            lastNameList.add("176,宗");
            lastNameList.add("177,丁");
            lastNameList.add("178,宣");
            lastNameList.add("179,贲");
            lastNameList.add("180,邓");
            lastNameList.add("181,郁");
            lastNameList.add("182,单");
            lastNameList.add("183,杭");
            lastNameList.add("184,洪");
            lastNameList.add("185,包");
            lastNameList.add("186,诸");
            lastNameList.add("187,左");
            lastNameList.add("188,石");
            lastNameList.add("189,崔");
            lastNameList.add("190,吉");
            lastNameList.add("191,钮");
            lastNameList.add("192,龚");
            lastNameList.add("193,程");
            lastNameList.add("194,嵇");
            lastNameList.add("195,邢");
            lastNameList.add("196,滑");
            lastNameList.add("197,裴");
            lastNameList.add("198,陆");
            lastNameList.add("199,荣");
            lastNameList.add("200,翁");
            lastNameList.add("201,荀");
            lastNameList.add("202,羊");
            lastNameList.add("203,於");
            lastNameList.add("204,惠");
            lastNameList.add("205,甄");
            lastNameList.add("206,麴");
            lastNameList.add("207,家");
            lastNameList.add("208,封");
            lastNameList.add("209,芮");
            lastNameList.add("210,羿");
            lastNameList.add("211,储");
            lastNameList.add("212,靳");
            lastNameList.add("213,汲");
            lastNameList.add("214,邴");
            lastNameList.add("215,糜");
            lastNameList.add("216,松");
            lastNameList.add("217,井");
            lastNameList.add("218,段");
            lastNameList.add("219,富");
            lastNameList.add("220,巫");
            lastNameList.add("221,乌");
            lastNameList.add("222,焦");
            lastNameList.add("223,巴");
            lastNameList.add("224,弓");
            lastNameList.add("225,牧");
            lastNameList.add("226,隗");
            lastNameList.add("227,山");
            lastNameList.add("228,谷");
            lastNameList.add("229,车");
            lastNameList.add("230,侯");
            lastNameList.add("231,宓");
            lastNameList.add("232,蓬");
            lastNameList.add("233,全");
            lastNameList.add("234,郗");
            lastNameList.add("235,班");
            lastNameList.add("236,仰");
            lastNameList.add("237,秋");
            lastNameList.add("238,仲");
            lastNameList.add("239,伊");
            lastNameList.add("240,宫");
            lastNameList.add("241,宁");
            lastNameList.add("242,仇");
            lastNameList.add("243,栾");
            lastNameList.add("244,暴");
            lastNameList.add("245,甘");
            lastNameList.add("246,钭");
            lastNameList.add("247,厉");
            lastNameList.add("248,戎");
            lastNameList.add("249,祖");
            lastNameList.add("250,武");
            lastNameList.add("251,符");
            lastNameList.add("252,刘");
            lastNameList.add("253,景");
            lastNameList.add("254,詹");
            lastNameList.add("255,束");
            lastNameList.add("256,龙");
            lastNameList.add("257,叶");
            lastNameList.add("258,幸");
            lastNameList.add("259,司");
            lastNameList.add("260,韶");
            lastNameList.add("261,郜");
            lastNameList.add("262,黎");
            lastNameList.add("263,蓟");
            lastNameList.add("264,薄");
            lastNameList.add("265,印");
            lastNameList.add("266,宿");
            lastNameList.add("267,白");
            lastNameList.add("268,怀");
            lastNameList.add("269,蒲");
            lastNameList.add("270,邰");
            lastNameList.add("271,从");
            lastNameList.add("272,鄂");
            lastNameList.add("273,索");
            lastNameList.add("274,咸");
            lastNameList.add("275,籍");
            lastNameList.add("276,赖");
            lastNameList.add("277,卓");
            lastNameList.add("278,蔺");
            lastNameList.add("279,屠");
            lastNameList.add("280,蒙");
            lastNameList.add("281,池");
            lastNameList.add("282,乔");
            lastNameList.add("283,阴");
            lastNameList.add("284,欎");
            lastNameList.add("285,胥");
            lastNameList.add("286,能");
            lastNameList.add("287,苍");
            lastNameList.add("288,双");
            lastNameList.add("289,闻");
            lastNameList.add("290,莘");
            lastNameList.add("291,党");
            lastNameList.add("292,翟");
            lastNameList.add("293,谭");
            lastNameList.add("294,贡");
            lastNameList.add("295,劳");
            lastNameList.add("296,逄");
            lastNameList.add("297,姬");
            lastNameList.add("298,申");
            lastNameList.add("299,扶");
            lastNameList.add("300,堵");
            lastNameList.add("301,冉");
            lastNameList.add("302,宰");
            lastNameList.add("303,郦");
            lastNameList.add("304,雍");
            lastNameList.add("305,舄");
            lastNameList.add("306,璩");
            lastNameList.add("307,桑");
            lastNameList.add("308,桂");
            lastNameList.add("309,濮");
            lastNameList.add("310,牛");
            lastNameList.add("311,寿");
            lastNameList.add("312,通");
            lastNameList.add("313,边");
            lastNameList.add("314,扈");
            lastNameList.add("315,燕");
            lastNameList.add("316,冀");
            lastNameList.add("317,郏");
            lastNameList.add("318,浦");
            lastNameList.add("319,尚");
            lastNameList.add("320,农");
            lastNameList.add("321,温");
            lastNameList.add("322,别");
            lastNameList.add("323,庄");
            lastNameList.add("324,晏");
            lastNameList.add("325,柴");
            lastNameList.add("326,瞿");
            lastNameList.add("327,阎");
            lastNameList.add("328,充");
            lastNameList.add("329,慕");
            lastNameList.add("330,连");
            lastNameList.add("331,茹");
            lastNameList.add("332,习");
            lastNameList.add("333,宦");
            lastNameList.add("334,艾");
            lastNameList.add("335,鱼");
            lastNameList.add("336,容");
            lastNameList.add("337,向");
            lastNameList.add("338,古");
            lastNameList.add("339,易");
            lastNameList.add("340,慎");
            lastNameList.add("341,戈");
            lastNameList.add("342,廖");
            lastNameList.add("343,庚");
            lastNameList.add("344,终");
            lastNameList.add("345,暨");
            lastNameList.add("346,居");
            lastNameList.add("347,衡");
            lastNameList.add("348,步");
            lastNameList.add("349,都");
            lastNameList.add("350,耿");
            lastNameList.add("351,满");
            lastNameList.add("352,弘");
            lastNameList.add("353,匡");
            lastNameList.add("354,国");
            lastNameList.add("355,文");
            lastNameList.add("356,寇");
            lastNameList.add("357,广");
            lastNameList.add("358,禄");
            lastNameList.add("359,阙");
            lastNameList.add("360,东");
            lastNameList.add("361,殴");
            lastNameList.add("362,殳");
            lastNameList.add("363,沃");
            lastNameList.add("364,利");
            lastNameList.add("365,蔚");
            lastNameList.add("366,越");
            lastNameList.add("367,夔");
            lastNameList.add("368,隆");
            lastNameList.add("369,师");
            lastNameList.add("370,巩");
            lastNameList.add("371,厍");
            lastNameList.add("372,聂");
            lastNameList.add("373,晁");
            lastNameList.add("374,勾");
            lastNameList.add("375,敖");
            lastNameList.add("376,融");
            lastNameList.add("377,冷");
            lastNameList.add("378,訾");
            lastNameList.add("379,辛");
            lastNameList.add("380,阚");
            lastNameList.add("381,那");
            lastNameList.add("382,简");
            lastNameList.add("383,饶");
            lastNameList.add("384,空");
            lastNameList.add("385,曾");
            lastNameList.add("386,毋");
            lastNameList.add("387,沙");
            lastNameList.add("388,乜");
            lastNameList.add("389,养");
            lastNameList.add("390,鞠");
            lastNameList.add("391,须");
            lastNameList.add("392,丰");
            lastNameList.add("393,巢");
            lastNameList.add("394,关");
            lastNameList.add("395,蒯");
            lastNameList.add("396,相");
            lastNameList.add("397,查");
            lastNameList.add("398,後");
            lastNameList.add("399,荆");
            lastNameList.add("400,红");
            lastNameList.add("401,游");
            lastNameList.add("402,竺");
            lastNameList.add("403,权");
            lastNameList.add("404,逯");
            lastNameList.add("405,盖");
            lastNameList.add("406,益");
            lastNameList.add("407,桓");
            lastNameList.add("408,公");
            lastNameList.add("409,万俟");
            lastNameList.add("410,司马");
            lastNameList.add("411,上官");
            lastNameList.add("412,欧阳");
            lastNameList.add("413,夏侯");
            lastNameList.add("414,诸葛");
            lastNameList.add("415,闻人");
            lastNameList.add("416,东方");
            lastNameList.add("417,赫连");
            lastNameList.add("418,皇甫");
            lastNameList.add("419,尉迟");
            lastNameList.add("420,公羊");
            lastNameList.add("421,澹台");
            lastNameList.add("422,公冶");
            lastNameList.add("423,宗政");
            lastNameList.add("424,濮阳");
            lastNameList.add("425,淳于");
            lastNameList.add("426,单于");
            lastNameList.add("427,太叔");
            lastNameList.add("428,申屠");
            lastNameList.add("429,公孙");
            lastNameList.add("430,仲孙");
            lastNameList.add("431,轩辕");
            lastNameList.add("432,令狐");
            lastNameList.add("433,钟离");
            lastNameList.add("434,宇文");
            lastNameList.add("435,长孙");
            lastNameList.add("436,慕容");
            lastNameList.add("437,鲜于");
            lastNameList.add("438,闾丘");
            lastNameList.add("439,司徒");
            lastNameList.add("440,司空");
            lastNameList.add("441,亓官");
            lastNameList.add("442,司寇");
            lastNameList.add("443,仉");
            lastNameList.add("444,督");
            lastNameList.add("445,子车");
            lastNameList.add("446,颛孙");
            lastNameList.add("447,端木");
            lastNameList.add("448,巫马");
            lastNameList.add("449,公西");
            lastNameList.add("450,漆雕");
            lastNameList.add("451,乐正");
            lastNameList.add("452,壤驷");
            lastNameList.add("453,公良");
            lastNameList.add("454,拓拔");
            lastNameList.add("455,夹谷");
            lastNameList.add("456,宰父");
            lastNameList.add("457,谷粱");
            lastNameList.add("458,晋楚");
            lastNameList.add("459,闫法");
            lastNameList.add("460,汝");
            lastNameList.add("461,鄢");
            lastNameList.add("462,涂");
            lastNameList.add("463,钦");
            lastNameList.add("464,段干");
            lastNameList.add("465,百里");
            lastNameList.add("466,东郭");
            lastNameList.add("467,南门");
            lastNameList.add("468,呼延");
            lastNameList.add("469,归");
            lastNameList.add("470,海");
            lastNameList.add("471,羊舌");
            lastNameList.add("472,微生");
            lastNameList.add("473,岳");
            lastNameList.add("474,帅");
            lastNameList.add("475,缑");
            lastNameList.add("476,亢");
            lastNameList.add("477,况");
            lastNameList.add("478,后");
            lastNameList.add("479,有");
            lastNameList.add("480,琴");
            lastNameList.add("481,梁丘");
            lastNameList.add("482,左丘");
            lastNameList.add("483,东门");
            lastNameList.add("484,西门");
            lastNameList.add("485,商");
            lastNameList.add("486,牟");
            lastNameList.add("487,佘");
            lastNameList.add("488,佴");
            lastNameList.add("489,伯");
            lastNameList.add("490,赏");
            lastNameList.add("491,南宫");
            lastNameList.add("492,墨");
            lastNameList.add("493,哈");
            lastNameList.add("494,谯");
            lastNameList.add("495,笪");
            lastNameList.add("496,年");
            lastNameList.add("497,爱");
            lastNameList.add("498,阳");
            lastNameList.add("499,佟");
            lastNameList.add("500,第五");
            lastNameList.add("501,言");
            lastNameList.add("502,福");
        }
    
        
        public String evaluate(String name) throws Exception{
            
            String result = "";
            
            name = name.trim();
            
            for(int i = 0; i < lastNameList.size(); i++) {
                String line = (String)lastNameList.get(i);
                String lastNameId = line.split(",")[0];
                String lastName = line.split(",")[1];
                if(name.startsWith(lastName)) {
                    result = lastName;
                    break;
                }
            }
            
            return result;
        }
        
    }
  • 相关阅读:
    PostgreSQL中的partition-wise join
    Partition-wise join
    外观模式 门面模式 Facade 结构型 设计模式(十三)
    桥接模式 桥梁模式 bridge 结构型 设计模式(十二)
    组合模式 合成模式 COMPOSITE 结构型 设计模式(十一)
    创建型设计模式对比总结 设计模式(八)
    原型模式 prototype 创建型 设计模式(七)
    单例模式 创建型 设计模式(六)
    建造者模式 生成器模式 创建型 设计模式(五)
    抽象工厂模式 创建型 设计模式(四)
  • 原文地址:https://www.cnblogs.com/Jims2016/p/9353426.html
Copyright © 2011-2022 走看看