
1、TINYINT
2、SMALLINT
3、INT/INTEGER
4、BIGINT
5、FLOAT
6、DOUBLE
7、DECIMAL
hive 数值型主要是以上7种组成。
这里主要讲一下Double 和Decimal
对于小数的显示,我在项目中考虑用Double还是Decimal,由于Double 不如Decimal精确,而且在数字过长的时候会有科学技术法表示,所以这块用的是Decimal去做的。
用的时候也出现过问题。Decmal的用法如下 Decimal(precision, scale)
precision 表示的是长度
scale 表示 小数位数
比如 -99.99 表示precision为4 (注意 正负号不包括在内) scale 为2
之前我以为是总体20位,小数有2位那么 整数就能有18位了 ,其实不是这样子,举个例子。一个小数333.07 导入表
而建立一个Decimal(20,17) 的话 便可以顺利导入
目前所学的复杂数据类型有三种 array , map , struct 。
用这种数据类型的特点就是集合里的每一个字段都是一个具体的信息,不会是那种 key 与 values 的关系
load数据如上所示,一共两个字段, ruoze 和他们工作的城市
也就是字段与字段之间的分割用table array字段之间的分割用“ , ”。
array_contains 这个函数是array_contains(array字段,‘字段包含的内容’)
比如以上就是array字段包含 tianjin 的数据。
以上数据一共有3个字段,分别为id,name,member。其中member里的内容都是以 key:values 的形式出现的,若是这种形式一般用 map 这种复杂数据类型
struct('a',1,2,3,4) (这个数据类型的特点就是可以包含各种各样的数据类型。但是 struct 可以是任意数据类型,在写struct数据类型时,在 <>中要写清楚struct字段中的字段名称跟数据类型)
HIVE里有两种时间类型:DATE类和TIMESTAMP类DATE类保存形如‘2017-05-05
00:00:00.000’这种数据,
TIMESTAMP保存的是一个10位的整数,
即
UNIX系统
下的时间戳记法。可以通过
from_unixtime
()和unix_timestamp()函数互相转换。
当然你也可以直接存成string格式。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)