2017-03-02 40 views
0

我試圖將通常在無符號整數和無符號Bigint中的數據加載到配置單元表中。由於每蜂巢文檔,我看到,它僅支持整數簽名和簽署大整數Hive支持無符號數字數據類型

INT/INTEGER(4字節帶符號整數,從-2147483648〜 2147483647)BIGINT(8字節符號整數,從 -9,223,372,036,854,775,808 9,223,372,036,854,775,807)

有沒有無符號的數值(TINYINT,SMALLINT,INT,BIGINT)存儲到蜂巢表的方法嗎?

+2

使用帶符號的*類型*來存儲無符號*值的問題是什麼? - 您擔心該值可能高於最大值(例如INT爲3,000,000,000)? Hive文檔建議使用'DECIMAL(x,0)'來存儲一個至多爲'x'數字的整數值,其中'x'高於BIGINT的容量(並且只要'x' <= 38) 。 –

+0

是的,我正在考慮如何存儲給定數值類型的最大值。因此,通過使用小數點可以存儲無符號的最大整數值或大整數值。 – prashanthp

+0

@samson謝謝。我正在尋找存儲最大的unsigned int/bigint值。小數點(x,0)正在工作。 – prashanthp

回答

1

短篇小說長:從Hive documentation摘錄有關DECIMAL數據類型

在蜂房DECIMAL類型是基於Java的BigDecimal這是用於表示不可變的任意精度的十進制數 ...... 限於38位 ...

自從Hive 0.13用戶可以指定 規模和精度創建表時...
   如果未指定 規模¤,則默認爲0(無小數位)
   ¤如果沒有指定精度,其缺省值爲10

積分文字比BIGINT較大必須DECIMAL處理(38 ,0)。後綴BD需要...

所以DECIMAL絕對是你要找的數據類型。

相關問題