码迷,mamicode.com
首页 > 其他好文 > 详细

hive 中简单的udf函数编写

时间:2019-01-25 18:53:20      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:注销   func   删除mysql   ado   test   mysql   xtend   删除   att   

 

1.注册函数,使用using jar方式在hdfs上引用udf库。
$hive>create function formattime as com.it18zhang.applogs.udf.FormatTimeUDF using jar hdfs://hadoop01/app/app-logs-hive-1.0-SNAPSHOT.jar;2.注销函数,只需要删除mysql的hive数据记录即可。
delete from func_ru ;
delete from funcs ;
show funcyions;
desc formatted function substring;



2.udf函数获取天开始一些简单方法
@Description(name = "udf_getdaybegin", value = "getdaybegin", extended = "getdaybegin() ;\r\n" + " getdaybegin(2) \r\n" + " getdaybegin(‘2017/06/29 01:02:03‘) \r\n" + " getdaybegin(‘2017/06/29 01:02:03‘,2) \r\n" + " getdaybegin(date_obj) \r\n" + " getdaybegin(date_obj,2)") public class DayBeginUDF extends UDF { /** * 计算现在的起始时刻(毫秒数) */ public long evaluate() throws ParseException { return evaluate(new Date()); } /** * 指定天偏移量 */ public long evaluate(int offset) throws ParseException { return evaluate(DateUtil.getDayBeginTime(new Date(), offset)); } /** * 计算某天的开始时刻(毫秒数) */ public long evaluate(Date d) throws ParseException { return DateUtil.getDayBeginTime(d).getTime(); } /** * 计算某天的开始时刻(毫秒数) */ public long evaluate(Date d, int offset) throws ParseException { return DateUtil.getDayBeginTime(d, offset).getTime(); } /** * 计算某天的起始时刻(毫秒数) */ public long evaluate(String dateStr) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Date d = sdf.parse(dateStr); return evaluate(d); } /** * 计算某天的起始时刻(毫秒数) */ public long evaluate(String dateStr, int offset) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Date d = sdf.parse(dateStr); return DateUtil.getDayBeginTime(d, offset).getTime(); } /** * 计算某天的起始时刻(毫秒数) */ public long evaluate(String dateStr, String fmt) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat(fmt); Date d = sdf.parse(dateStr); return DateUtil.getDayBeginTime(d).getTime(); } /** * 计算某天的起始时刻(毫秒数) */ public long evaluate(String dateStr, String fmt, int offset) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat(fmt); Date d = sdf.parse(dateStr); return DateUtil.getDayBeginTime(d, offset).getTime(); } }

 

hive 中简单的udf函数编写

标签:注销   func   删除mysql   ado   test   mysql   xtend   删除   att   

原文地址:https://www.cnblogs.com/hejunhong/p/10321022.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!