hive的数据类型(hive的数据类型有哪些)

本篇文章给大家谈谈hive的数据类型,以及hive的数据类型有哪些对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

hive 数据类型

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

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) 的话 便可以顺利导入

hive表的类型有哪些

Hive 的表有哪些类型呢,我们简单可以分为四种,受控表、外部表、分区表、桶表,从严格意义上说,应该分为两种受控表,又叫内部表、外部表,分区表和桶表高橘拍其实是受控表的不同体现。

1、受控表

所谓受控表,我们也经常叫内部表,和外部戚羡表对应起来,就是说表的数据的生命周期收表的控制,当表定义被删除的时候,表中的数据随之一并被删除。创建一张表,其对应在hive中就有了表记录,在metastore表TBLS中就有表定义,当我们一旦从hive中删除一张表的定义之后,其表中的数据也就不复存在了,在metastore中的定义也就不存在了。

2、外部表

和受控表相对的,怎么相对呢,你的内部表的数据的生命周期受表定义的影响不是,外部表的不是这样的,数据的生命周期, 或者说数据存在与否和表的定义互不约束,表中的数据呢,只是表对hdfs上相应文件的一个引用而伍尺已,当删除表定义的时候,表中的数据依然存在。

3、分区表

假设服务器集群每天都产生一个日志数据文件,把数据文件统一存储到HDFS中。我们如果想查询某一天的数据的话,hive执行的时候会对所有文件都扫描一遍,判断是否是指定的日期。可以让日期作为一个子目录。当hive查询的时候,根据日期去判断子目录。然后扫描符合条件的子目录中的数据文件。

4、桶表

桶表是对数据进行哈希取值,然后放到不同文件中存储。分桶是将数据及分解成更容易管理的若干部分的另一种技术。如果进行表连接操作,那么就需要对两张表的数据进行全扫描。非常耗费时间。可以针对连接字段进行优化。分桶这种情况下呢,对于相似的表中的数据进行比较的话就非常的方便了,只要对比相应的桶中的数据就可了。

Hive复杂数据类型:array、map、struct

目前所学的复杂数据类型有三种 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字段中的字败物段名称跟数据类型)

[img]

关于hive的数据类型和hive的数据类型有哪些的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表