今天使用阿里云套件quick bi开发一个报表,需求是自定义上周六到本周五为自然周来统计周指标,常规日期函数已经不能满足此需求,需自定义UDF函数来实现,具体解决过程如下。
知识储备:
我们知道hive有一个日期转周函数:weekofyear
语法: weekofyear (string date)
返回值: int
说明:返回日期在当前的周数,默认周一是一周的开始。
举例:
hive> select weekofyear('2020-12-29')
53
此需求的核心就是重写weekofyear这个方法,传入参数周六作为一周的开始时间,周五就作为结束时间,有了这个思路我们就开始自定义UDF函数。
笔者使用的是阿里云的DataWorks一站式开发平台,代码开发工具是Idea,下面详细介绍实现过程:
1、创建maven项目
2、pom.xml导入阿里云依赖
<dependencies>
<dependency