一、Hive数据类型
1.基本数据类型
- 整数类型:tinyint/smallint/int/bigint
- 浮点数类型: float/double
- 布尔类型: boolean
- 字符串类型: string/char/varchar
2.复杂数据类型
- Array:数组类型,有一系列相同数据类型的元素组成
creat table student
(sid int, sname string, grade array<float>);
{1,Tom,[80,90,75]}
- Map:集合类型,包含key-value键值对,可以通过key来访问元素
creat table student1
(sid int, sname string, grade map<string, float>);
{1,Tom,<'语文',85>}
array和map的嵌套使用
creat table student2
(sid int, sname string, grades array<map<string,float>>);
{1,Tom, [<'语文',80>,<'英语',90>]}
- Struct:结构类型,可以包含不同数据类型的元素。这些元素可以通过“点语法”的方式来得到所需要的元素。
creat table student3
(sid int, info struct<name:string, age:int, sex:string>);
3.时间类型
- Date
- Timestamp 时间戳 自UNIX产生以来的一个偏移量,是一个整型数据
select unix_timestamp
二、Hive的数据存储
当我们在Hive中创建了一张表,就相当于在HDFS中创建了一个文件夹,而表中的数据就相当于文件夹中的文件。
- 表
-Table 内部表
-Partition 分区表
-External Table 外部表
-Bucket Table 桶表 - 视图
分区表creat table student
(sid int, sname string, age int)
location '/mytable/hive/student';
row formats delimited fields terminated by ',';
外部表creat table partition_table
(sid int, sname string)
partitioned by (gender string)
row format delimited fields terminated by ',';
insert into partition_table partition(gender='M') select sid,sname from sample_data where gender='M';
网友评论