Java UDF的配置单元日期和时间戳的正确数据类型

Java UDF的配置单元日期和时间戳的正确数据类型,java,hive,bigdata,Java,Hive,Bigdata,我为一个配置单元项目编写了一个新的UDF,但是返回类型不是日期对象,而是一个奇怪的结构。正确的退货类型是什么 @Description(name = "udf_good_date", value = "_FUNC_(datestring):DATE", extended = "") @UDFType(deterministic = true, stateful = false) public class GoodDateAsDateUDF extends UDF { public Da

我为一个配置单元项目编写了一个新的UDF,但是返回类型不是日期对象,而是一个奇怪的结构。正确的退货类型是什么

@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}}  |
+----------------------------------------------------------------------------------------------------------------------+--+

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


严重吗。。。。我切换到java.sql.Date,更多功能正在运行。但是,java.sql.Timestamp没有处理Impala中的时间戳逻辑,Impala可以使用配置单元函数。您正在返回函数
Utils.getGoodDate
的结果,但没有提供其代码、接口或相关链接,您真的希望得到答案吗?感谢上帝,这是谷歌。您可能看到的是sun.util.calendar的JSON表示。检查以下源代码示例,了解您给出的答案的URL。是的,这就是要点:-)请添加答案