0
Hiveプロジェクト用の新しいUDFを作成しましたが、戻り値の型はDATEオブジェクトではなく、むしろ奇妙な構造です。正しい返品タイプは何ですか?UVE用のHive DATEおよびTIMESTAMPの適切なデータ型
@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は、Hive関数を使用できるImpalaのTimestampロジックには対処しませんでした。 – Chris
あなたは、コードやインターフェース、関連するリンクを提供せずに、関数 'Utils.getGoodDate'の結果を返しています。あなたは真剣に答えを得ることを期待していますか?おかげで、GoogleはGoogleです。あなたが見ているのは、JSON表現のsun.util.calendarです。http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8-b132/sun/util/calendar/BaseCalendar .java。コード例については、次のソースを確認してください。https://github.com/apache/hive/tree/ff67cdda1c538dc65087878eeba3e165cf3230f4/ql/src/java/org/apache/hadoop/hive/ql/udf/generic –