2016-05-11 9 views
0

ハイブの日付値を取得するのが難しいです。私はこのエラーを取得するselect * from test1 limit5を使用しようとすると私のクエリはハイブの日付列を取得できません

create external table test1(DISPLAYSCALE int, CREATED_DATE date, LAST_EDITED_DATE date) 

ROW FORMAT SERDE 'com.esri.hadoop.hive.serde.JsonSerde' STORED AS INPUTFORMAT 'com.esri.json.hadoop.UnenclosedJsonInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'; 

です。 java.lang.ClassCastExceptionが: org.apache.hadoop.hive.serde2.io.DateWritableは org.apache.hadoop.io.Textにキャストすることはできません例外 にjava.io.IOExceptionに失敗しました

CREATEEDATEおよびCREATED_DATEのデータ型はesriFieldTypeDateであり、値は2013-11-20 09:39:25.000001のようになります。 テーブルを作成するときに日付データ型を使用し、非クローズドjsonを使用してHDFSにコピーし、select *クエリを使用して列を取得しましたが、上記のエラーが発生します。値を取得するには、dateの代わりにstringデータ型を持つ同じテーブルを作成し、値を取得することができます。

この問題の解決策を提案できますか?この質問はばかげているように思えるかもしれませんが、私はかなりプログラミングに新しいです。

+0

。 –

答えて

0

Dateデータ型は

タイム・スタンプまたはVARCHARデータはあなたではなく、日付データ型よりも使用することができます入力するだけで、フォーマットYYYY-MM-DDをサポートしています。

0

EsriJsonSerDe(及びGeoJsonSerDe)以下ポストを参照。 UnenclosedEsriJsonInputFormatと一緒に -

代わりに、あなたは(とカラム型stringではなくbinaryとの代わりにEsriJsonSerDeの)org.openx.data.jsonserde.JsonSerDeまたはorg.apache.hive.hcatalog.data.JsonSerDeを使用して試すことができます。

[開示:空間的フレームワークのために、Hadoopのコラボレータ]空間的フレームワークについては、HadoopのV1.2 +、使用 `..... EsriJsonSerDe`と` .... UnenclosedEsriJsonInputFormat`で

関連する問題