package com.test.udf;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
public class AddMonth extends UDF {
public Text evaluate(Text dateTx, IntWritable monthIw) {
String dateStr = dateTx.toString();
int month = Integer.parseInt(monthIw.toString());
String dateRs = getDateResult(dateStr, month);
if (dateRs != null) {
return new Text(dateRs);
} else {
return null;
}
}
public static String getDateResult(String dateStr, int month) {
String dateRs = null;
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date dt = sdf.parse(dateStr);
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(dt);
rightNow.add(Calendar.MONTH, month);
dateRs = sdf.format(rightNow.getTime());
} catch (ParseException e) {
e.printStackTrace();
}
return dateRs;
}
public static void main(String[] args) throws ParseException {
AddMonth ad = new AddMonth();
System.out.println(ad.evaluate(new Text("2017-01-01"), new IntWritable( -1)));
}
}
hive时间按月份加减UDF
需积分: 50 54 浏览量
2017-01-10
14:43:17
上传
评论
收藏 4KB RAR 举报
进击的巨喵
- 粉丝: 5
- 资源: 4
最新资源
- 我的自己111111111
- 判断一个数是否为质数以及通过C语言实现.docx
- IPv4-HEADER-03 测试数据
- 高级网络人才培训专家-X00070005 第32章 ISDN和DCC
- 高级网络人才培训专家-X00070004 第31章 配置帧中继
- IPv4-HEADER-02测试数据
- tensorflow-2.6.2-cp38-cp38-manylinux2010-x86-64.whl
- tensorflow-2.6.2-cp37-cp37m-win-amd64.whl
- RV180-Firmware-1.0.5.4.img
- 粒子群算法.docx 粒子群算法(Particle Swarm Optimization,PSO)是一种优化算法,受到鸟群或鱼
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈