2017-06-08 15 views
0

HDFSにはパーティションのコンベンションに従うディレクトリ構造のtsvファイルがたくさんあります。ここではevent_dtがパーティションです。ハイブのパーティションを持つ外部テーブル

some_path/event_dt=2017-04-30 
some_path/event_dt=2017-05-01 

などとなる。

event_dtも列の1つです。特に第2のもの。しかし、event_dtはテーブルスキーマとPARTITIONED BYステートメントには出現できないので、これを指定することはできません。これにより、次のようなトリガーが発生します。

Column repeated in partitioning columns 

別の名前を使用する以外に方法がありますか。それは結局、同じ情報です。

+0

データをロードするたびに 'event_dt 'に基づいて動的パーティションを作成しますか? – philantrovert

+0

非パーティション列の名前を変更しない理由は何ですか? –

+0

全く同じことを指す2つの名前を持つことは、私が推測するにはちょっと変わったと感じます – elelias

答えて

-1

3名前を変更したくない場合は、3つのオプションがあります。

  1. event_dtがcsvの最後の列の場合は、この列を除いてテーブルを作成します。
  2. データのこの情報を除外し、ターゲットテーブルがeven_dt(最も効率的な方法ではない)でパーティション化されている場所にデータを変換します。
  3. テーブルの上にビューを作成しますとにかく元のテーブルには名前の変更が必要です。
関連する問題