5

私はhadoopに少し慣れていません。私の知識によると、バケットは固定されていません。ハイブテーブルとハイブのパーティションの数は、no. 減速機の総数と同じ テーブルの作成中に定義されたバケットの。では、合計数の計算方法を誰か教えてください。ハイブ テーブル内のバケットの数。バケットの総数を計算する式はありますか?

4

4 に答える 4

1

ドキュメントの リンクから

一般に、バケット番号は式 hash_function(bucketing_column) mod num_buckets によって決定されます。(そこにも '0x7FFFFFFF がありますが、それはそれほど重要ではありません)。hash_function は、バケット列のタイプによって異なります。int の場合は、hash_int(i) == i と簡単です。たとえば、user_id が int で、バケットが 10 個ある場合、0 で終わるすべての user_id はバケット 1 にあり、1 で終わるすべての user_id はバケット 2 にある、などと予想されます。他のデータ型の場合は、少しトリッキーです。特に、BIGINT のハッシュは BIGINT と同じではありません。また、文字列または複雑なデータ型のハッシュは、値から派生した数値になりますが、人間が認識できるものではありません。たとえば、user_id が STRING の場合、user_id'

于 2015-06-09T15:31:31.787 に答える