繁体   English   中英

适用于UDF的Hive DATE和TIMESTAMP的正确数据类型

[英]Proper datatypes for Hive DATE and TIMESTAMP for UDF

我为Hive项目编写了新的UDF,但返回类型不是DATE对象,而是一个奇数结构。 什么是正确的退货类型?

@Description(name = "udf_good_date", value = "_FUNC_(datestring):DATE", extended = "")
@UDFType(deterministic = true, stateful = false)
public class GoodDateAsDateUDF extends UDF {

    public Date evaluate(String a) {
        return Utils.getGoodDate(a);
    }

}

尝试一下:

select default.udf_good_date('10/20/1983);

它奇怪地给出:

+----------------------------------------------------------------------------------------------------------------------+--+
|                                                         _c0                                                          |
+----------------------------------------------------------------------------------------------------------------------+--+
| {"fasttime":125733600000,"cdate":{"cachedyear":1983,"cachedfixeddatejan1":720259,"cachedfixeddatenextjan1":720624}}  |
+----------------------------------------------------------------------------------------------------------------------+--+

当缺少开源项目的文档时,需要访问实际的源代码本身才能看到真正的答案。 因此,关于各种基于时间的数据类型,最好阅读源代码中的代表性示例。 这个特殊的类很好地说明了用法。

https://github.com/apache/hive/blob/ff67cdda1c538dc65087878eeba3e165cf3230f4/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFHour.java

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM