2016-12-14 8 views
0

17カラムのテーブルをロードしようとしていて、カラムの1つ(datetime)がnullとしてロードされています。正しいデータ型を使用しているかどうかはわかりません。ここに私の読み込みスクリプトがあります:ハイブカラムがnullとしてロードされています

CREATE EXTERNAL TABLE IF NOT EXISTS 
Weather(year INT, month INT, day int, TimeCST timestamp, temperature float, 
dew float, humidity int, sea float, visibility int, wind STRING, wspeed float, 
gust float, rain float, events string, conditions string, degrees int, dateutc datetime) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '/home/ubuntu/final'; 

問題の列は、dateutc列です。私は日時とタイムスタンプの両方としてロードしようとしており、両方がnullとして表示されています。ここに基礎となるCSVの値があります。 2000年1月1日7時53分。

これはなぜ起こっているのでしょうか?

おかげでタイムスタンプのテキストファイルで

+0

「文字列」としてロードしてみてください。ハイブクエリでは、 'datetime/timestamp'として使用できます。 – Ambrish

答えて

0

はフォーマットYYYY-MM-DD HHを使用する必要があります:mm:ssの[.F ...]。それらが別の形式であれば、適切な型(INT、FLOAT、STRINGなど)として宣言し、UDFを使用してそれらをタイムスタンプに変換します。

表レベルで、代替のタイムスタンプ形式は、SerDeプロパティー "timestamp.formats"(HIVE-9298のリリース1.2.0以降)にフォーマットを提供することでサポートできます。たとえば、yyyy-MM-dd'T'HH:mm:ss.SSS、yyyy-MM-dd'T'HH:mm:ssとなります。

参照先:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types

関連する問題