2011-12-16 10 views
2

私は現在、そのような外部表を作成しています:ハイブ作成テーブルファイル名000000_0?

CREATE EXTERNAL TABLE site_datatype (
.... 
yada yada 
.... 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' 
LOCATION '/user/accounting/summary/2011-12-15/site_datatype.result' 

しかし、その代わりに、私は選択のインサート上書きテーブルを実行すると、その中に内容の「site_datatype.result」という名前のファイルを作成するのではなく、それはディレクトリを作成します"site_datatype.result"に "000000_0"というファイルを入れてください(正しい内容ですが)。

これはこのように動作するはずですか?そして、もしそうなら、私はそれを私が必要な方法でやり遂げるために、どのようにこれを回避することができますか?

おかげで、 マリオ

答えて

3

ハイブので、複数の減速が迅速HDFSに結果をダンプすることができ、ディレクトリレベルで動作します。ファイルレベルで運用する場合は、1つのファイルに統合して不要なボトルネックを追加するために、単一のレデューサーにファイルを送信する必要があります。

1つのファイルでHiveテーブルのデータが絶対に必要な場合は、レデューサーの数を1に設定してからデータをクエリし、新しいテーブルまたはディレクトリに(Insert Overwriteを介して)プッシュできます。

別のオプションは戻って一緒にすべてのファイルをHDFSからテーブルを取得する(Hadoopのfsを-getハイブ/倉庫/ SampleTableを/。)とし、 '猫のことであろう。

+0

私はこのような疑いがあります。ありがとう! – Mario

関連する問題