年龄判断UDF
2020-08-20 10:55
155 查看
年龄判断UDF
如想看含带打包等具体操作请转至☞jsonUDF
1.UDF
package com.jxlg.hiveUDF; import org.apache.curator.shaded.com.google.common.base.Strings; import org.apache.hadoop.hive.ql.exec.UDF; import java.util.Calendar; public class BirthToAge extends UDF { public int evaluate(String birth){ //判断字符串是否为空 if(Strings.isNullOrEmpty(birth)){return -1;} //"1999,7,13"格式的字符串,基于','进行拆分 String []birthday=birth.split(","); //出生年份 int year0=Integer.parseInt(birthday[0]); //出生月份 int month0=Integer.parseInt(birthday[1]); //出生日期 int day0=Integer.parseInt(birthday[2]); //日历类 Calendar calendar= Calendar.getInstance(); //获取当前年份 int year1=calendar.get(Calendar.YEAR); //获取当前月份 int month1=calendar.get(Calendar.MONTH)+1; //获取当前日期 int day1=calendar.get(Calendar.DAY_OF_MONTH); //年份差值计算 int age=year1-year0; if(month1<month0){//当前月份小于出生月份age减一 age-=1; } else if(day1<day0 && month0==month1){//当前月份等于出生月份 // 并且当前日期小于出生日期age减一 age-=1; }else { return age; } return age; } public static void main(String[] args) { System.out.println(new BirthToAge().evaluate("1999,7,13")); } }
2.使用UDF
进入hive命令行
bin/hive
2.1.将编写好的jar打包上传到服务器上,并把jar包添加到hive的classpath下
add jar /home/hdfs/target/HiveUDF-jar-with-dependencies.jar;
2.2.创建临时函数
create temporary function ageCal as “com.jxlg.hiveUDF.BirthToAge”;
2.3.使用
select ageCal("1999,10,19");
结果如下:
相关文章推荐
- C语言if语句学习,判断年龄并且提示语句!
- 神经网络-1 利用年龄身高体重判断性别
- 身份证判断年龄及性别
- 年龄判断程序
- EXCEL中从身份证号判断出身日期(求excel中身份证提取年龄公式详解)
- 判断年龄大小(函数递归)
- Java数据结构与算法之年龄判断
- java 输入生日 判断年龄 星期几 距今天数
- 判断年龄和性别
- 判断年龄小练习
- 判断年龄是否合法,要求用户必须满10周岁,若年龄合法,则显示录入信息,否则显示录入失败
- 年龄判断
- 根据身份证号码来判断处于两个年龄之间
- 编写一个用户类(Sysuser),属性包括用户名、真实姓名、年龄、出生日期、密码,类方法中包含单独修改用户年龄、判断用户名和密码、显示用户信息功能,在用户测试类中(TestSysuser),根据用户输
- 姓名+年龄+性别+密码+住址判断添加到表格(批量删除)
- 年龄判断
- 循环输入年龄,判断大小后得出百分比
- C语言_年龄星座判断
- 根据出生年月日判断年龄
- js判断年龄是否为数字