在编写实现udf函数时,在小批量数据是没有问题的,一旦数据量多就报错,仔细看日志有gc异常,后来经过排查,发现是udf包太大导致的问题,去除了一些不必要的依赖之后变得正常。下面是写的一个时间戳转任意时区的udf函数功能
1.获取北京时间yyyy-MM-dd格式的时间
select ts2day();
-------
2019-09-10
2.获取指定时间戳的北京时间yyyy-MM-dd格式的时间
select ts2day(1567983600);
------------------
2019-09-09
3.获取指定时间戳的任意时区的yyyy-MM-dd格式时间
select ts2day(1567983600,"UTC");
----------------------------
2019-09-08
4.获取指定时间戳的任意时区的任意时间格式
select ts2day(1567983600,"Asia/Shanghai","yyyy-MM-dd HH:mm:SS");
------------------------------
2019-09-09 07:00:00
5.支持毫秒和秒自动转换功能
select ts2day(1567983600000);
--------------
2019-09-09
hive udf报gc异常
最新推荐文章于 2022-02-21 14:31:37 发布