在创建第一张表之前,先来说说Hive中的数据类型,基本类型和大多数计算机语言类似,包括:tinyint,smallint,int,bigint,boolean,float,double,,string,binary,timestamp,decimal,char,varchar,date等。还有一种集合类型,比较特殊,分为如下三种。
1、ARRAY:由一系列相同数据类型的元素组成,通过下标来访问,如array[1]
2、MAP:包含key->value键值对,通过key来访问元素,如map['key']
3、STRUCT:包含不同数据类型的元素,通过点的方式访问数据,如struct.key
下面我们建立一张客户信息表,包括年龄、职业、教育等属性,启动hive:
在你的hadoop安装目录下的sbin子目录中运行start-all.sh启动hadoop,然后接着输入hive进入hive命令提示符,并输入如下语句建立数据库(调整了终端颜色)。
查看数据库是否存在:
在loan_db中建立表cust_info,如下:
输出OK,则建表成功,其中contact-联系方式为array类型,default-借款是否违约为map类型,open-开户信息为struct类型。if not exists表示如果此表不存在才建立,存在则不执行建表代码。
row format开始代表数据文件的行格式,指定字段间用制表符\t分隔,以换行符\n结束一行,数据文件存储为textfile文本文件。use loan_db从默认数据库切换到loan_db,show tables命令查看上面建的空表,貌似Mysql也有这些命令。如下:
接下来使用desc查看表的描述信息,formatted规范化输出格式,如下:
上图输出了cust_info表的字段名和字段类型,在表详细信息中输出了表的hdfs存放路径等内容。
最后是是输入/输出格式,桶和排序等信息,当然目前还未设置。
第二种建表方式是用like关键字,直接拷贝原表的定义,如下:
用desc查看表cust_info2的字段定义与cust_info完全一致。
后面的章节会介绍如何往本节的空表中加载数据,到时会演示如何访问集合类型的数据。
领取专属 10元无门槛券
私享最新 技术干货