2016-08-11 5 views
2

私のディレクトリ構造は次のとおりです。ハイブのパーティションの後にサブフォルダを処理します

  • /data/year=/month=/day=/source1/abc.log
  • /data/year=/month=/day=/source2/def.log
  • /データ/年=/month =/day =/source3/xyz.log

私は、年、月、日のパーティションを持つハイブテーブルを作成したかったのですが、MSCKを実行しようとしたときにサブフォルダ 'source1'修復表。

CREATE EXTERNAL TABLE SAMPLE ( col1 STRING, col2 STRING ) PARTITIONED BY (year STRING, month STRING, date STRING) STORED as ORC Location "s3n://blah/data/" TBLPROPERTIES ("orc.compress"="SNAPPY");

MSCKの修復表は、 "予期しないコンポーネントのソース1" を与えるtable文を作成します。ファイルを移動させずに外部テーブルを作成する方法ご協力いただきありがとうございます。

答えて

1

あなたはパーティションを復元"の下Hive Manual から参照さ(ハイブ-site.xmlの中で、次のプロパティに

hive.msck.path.validation = skip (or) ignore 

を設定してみてください、その後、あなたのテーブルの上に

「をMSCKの修復表」を実行してもらえ(MSCK修復表) 'セクション)

+1

ご返信ありがとうございます。スキップは機能しませんでしたが、無視されました。修正を見つけるためにハイブのソースを調べなければなりませんでした.DDLTask.java、method = msckを参照してください。私はそれに答えることができるようにあなたの答えを編集してください – kamoor

+0

素晴らしい!私の答えを編集:) – Aditya

関連する問題