2017-03-02 8 views
0

通常、符号なし整数と符号なしBigintのデータをハイブテーブルにロードしようとしています。ハイブのマニュアルに従って、私はそれが唯一の符号付き整数をサポートしていることを見ると、大きな符号付き整数符号なし数値データ型をサポートするハイブ

INT/INTEGER(-2,147,483,648から 2147483647に4バイトの符号付き整数、)BIGINT(8バイトの符号付き整数、から -9,223,372,036,854,775,808

ハイブのテーブルに符号なしの数値(TINYINT、SMALLINT、INT、BIGINT)を格納する方法はあります)9,223,372,036,854,775,807か?

+2

符号なし*タイプ*を使用して符号なし*値*を保存する際に発生する問題は何ですか?値が最大値を超える恐れがあります(INTの場合3,000,000,000など)。 Hiveのドキュメントでは、 'x 'がBIGINTの容量を上回る(そして' x' <= 38)限り、 'DECIMAL(x、0)'を使用して最大 ' 。 –

+0

さて、私はどのように特定の数値型の最大値を格納するのか考えていた。したがって、10進数の缶を使用することによって、符号なしの最大int値または大きいint値を格納します。 – prashanthp

+0

@サムソンありがとう。私は最大のunsigned int/bigint値を格納しようとしていました。小数点(x、0)が機能しています。 – prashanthp

答えて

1

短編小説長い:Hive documentationから抜粋さは約DECIMALハイブでDECIMAL型は、Javaの不変任意精度の小数点以下の数字 を表すために使用 あるBigDecimalに基づいています

データ型... に限定します38桁 ...

ハイブ0.13のユーザーは と指定できますテーブルを作成するとき...
(なし小数の桁)に ¤ スケールが指定されていない場合、それはデフォルトBIGINTはDECIMAL(38で処理されなければならないよりも大きく10

積分リテラルに
   ユーロ全く精度が指定されていない場合、それはデフォルト、0)。 PostfixのBDは...

必要とされるので、DECIMALは間違いなくあなたが探していたデータ型です。

関連する問題