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;
    }
    
}

 

posted @ 2018-07-23 10:41  Blue眼泪2016  阅读(919)  评论(0编辑  收藏  举报