1

HDFSのエポックを含むテキストファイルから外部Hiveテーブルを作成したいと思います。ファイルがにあるとしましょう/user/me/test.txt。ファイルの内容は次のとおりです。

1354183921
1354183922

Hive 0.8.1をインストールしていて、タイプTimestampを使用できるはずなので、次のテーブルを作成しました。

hive> CREATE EXTERNAL TABLE test1 (epoch Timestamp)
      LOCATION '/user/me';

次に、テーブルにクエリを実行しました。

SELECT * FROM test1;

次の例外が発生しました。

Failed with exception java.io.IOException:java.lang.IllegalArgumentException: 
Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]

外部テーブルを作成するときに何か見落としたことはありますか?Hive(0.8以降)が2番目にUnixエポックの形式でタイムスタンプをサポートしているので混乱しています:https ://cwiki.apache.org/Hive/languagemanual-types.html#LanguageManualTypes-Timestamps

4

1 に答える 1

2

タイムスタンプ文字列は、エラー メッセージとリンクで指定されている形式 yyyy-mm-dd hh:mm:ss[.ffffffffff] である必要があります。エポックを含むデータを使用するには、BIGINT として定義し、組み込みの UDF from_unixtime() を使用して日付を表す文字列に変換する必要があります。次に、他の組み込み UDF 日付関数を使用して、この日付を操作できます。

于 2012-11-30T14:09:41.147 に答える