UDF:weekdiff(计算指定的两个指定的日期之前相差几个自然周)
Hive Hive UDF    2018-08-31 18:47:28    0    0    0
cqc   Hive Hive UDF
/**
 * 计算指定的两个指定的日期之前相差几个自然周
 * create function udf.weekdiff as 'cn.cqc3073.hive.udf.WeekDiff' using jar 'hdfs:///user/hive/udf/hive-jar-with-dependencies.jar';
 *
 * by cqc
 */
@Description(
        name = "weekdiff",
        value = "_FUNC_(date1, date2) - Returns the number of weeks between date1 and date2"
)
public class WeekDiff extends UDF{
    public static int evaluate(String d1, String d2) {
        long days1 = LocalDate.parse(d1, NewDateUtil.FMT_DATE_DASH).with(DayOfWeek.MONDAY).toEpochDay();
        long days2 = LocalDate.parse(d2, NewDateUtil.FMT_DATE_DASH).with(DayOfWeek.MONDAY).toEpochDay();
        return (int)(days1 / 7) - (int)(days2 / 7);
    }
}

 

上一篇: UDAF:oneof(任意获得待聚合集中的一个)

下一篇: Hive执行异常Premature EOF from inputStream问题及解决方案

文档导航