2017-02-28 5 views
0

ハイブのどの段階でバケットを作成するのですかバケットファイルを作成するのですか?ハイブでバケットファイルを作成するとき

create table emp(id int, name string, country string) 
clustered by(country) 
INTO 2 BUCKETS 
row format delimited 
fields terminated by ',' 
stored as textfile ; 

バケットが20個あり、4行しか作成されていない場合、いくつのファイルが作成されますか?

答えて

0

テーブルを作成するときにバケットが作成されます。それらは、テーブルカタログ内のスタンドアロンファイルとしてHiveウェアハウスに配置されます。バケット・テーブルに新しいレコードを挿入すると、Hiveはバケット・カラムの値のハッシュを計算し、バケット・ファイルのポインタを取得します。あなたの20個のバケツのためには、起動時に20個の空のファイルを持っていますが、あなたの4つのレコードの正確な場所は、バケット列値にハッシュ関数の結果に依存する:

**record.country.value => hashfunction(record.country.value) = bucketNumber** 

あなたは以下のことで、それを再現することができますこのバケット表のセクションの説明はarticle

です
関連する問題