我为一个配置单元项目编写了一个新的自定义项,但返回类型不是日期对象,而是一个奇怪的结构。正确的返回类型是什么?
@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}} |
+----------------------------------------------------------------------------------------------------------------------+--+
1条答案
按热度按时间pxy2qtax1#
当开源项目缺少文档时,需要访问实际的源代码本身才能看到真正的答案。所以对于各种基于时间的数据类型,最好阅读源代码中的代表性示例。这个特殊的类很好地说明了这个用法。
https://github.com/apache/hive/blob/ff67cdda1c538dc65087878eeba3e165cf3230f4/ql/src/java/org/apache/hadoop/hive/ql/udf/udfhour.java