2017-03-15 14 views
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}} | 
+----------------------------------------------------------------------------------------------------------------------+--+ 
+0

真剣に? .... –

+0

私はjava.sql.Dateに切り替え、より多くの機能が動作しています。しかし、java.sql.Timestampは、Hive関数を使用できるImpalaのTimestampロジックには対処しませんでした。 – Chris

+1

あなたは、コードやインターフェース、関連するリンクを提供せずに、関数 '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 –

答えて

1

ドキュメントは1が真のを見て、実際のソースコード自体を訪問する必要がオープンソースプロジェクトに欠けています回答。したがって、さまざまな時間ベースのデータ型に関しては、ソースコードの代表的な例を読むことが最善です。この特定のクラスは、使用方法を非常によく示しています。

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

関連する問題