2017-03-02 42 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绝对是你要找的数据类型。

相关问题