hive 数据类型

hive 数据类型,第1张

由于在实际项目中使用,这里主要讲一下数值型

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格式。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6775167.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-28
下一篇2023-03-28

发表评论

登录后才能评论

评论列表(0条)

    保存