Hive中的复杂类型

Hive专栏
上一篇 主目录 下一篇


https://blog.csdn.net/wf1982/article/details/7474601
【前言】


1 Array

ARRAY:ARRAY 类型是由一系列相同数据类型的元素组成,这些元素可以通过下标来访问。比如有一个 ARRAY 类型的变量 fruits,它是由[‘apple’,‘orange’,‘mango’]组成,那么我们可以通过 fruits[1]来访问元素 orange,因为 ARRAY 类型的下标是从 0 开始的

创建数据库表,以array作为数据类型

create table  person(name string,work_locations array<string>)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
COLLECTION ITEMS TERMINATED BY ',';

数据

王文 Tokyo,Haikou
biansutao beijing,shanghai,tianjin,hangzhou
linan changchu,chengdu,wuhan

入库数据

LOAD DATA LOCAL INPATH '/home/hadoop/person.txt' OVERWRITE INTO TABLE person;

查询

hive> select * from person;
hive> select name from person;
hive> select work_locations from person;
hive> select work_locations[0] from person;
hive> select work_locations[2] from person;

在这里插入图片描述

2 Map

MAP:MAP 包含 key->value 键值对,可以通过 key 来访问元素。比如”userlist”是一个 map类型 , 其 中 username 是 key , password 是 value ; 那 么 我 们 可 以 通 过userlist[‘username’]来得到这个用户对应的 password

创建数据库表

create table score(name string, score map<string,int>)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
COLLECTION ITEMS TERMINATED BY ','
MAP KEYS TERMINATED BY ':';

要入库的数据

biansutao Chinese:89,Math:80,English:95
jobs Chinese:60,Math:80,English:99

入库数据

LOAD DATA LOCAL INPATH '/home/hadoop/score.txt' OVERWRITE INTO TABLE score;

查询

hive> select * from score;
hive> select name from score;
hive> select s.score from score s;
hive> select s.score['English'] from score s;

在这里插入图片描述

3 Struct

STRUCT:STRUCT 可以包含不同数据类型的元素。这些元素可以通过”点语法”的方式来得到所需要的元素,比如 user 是一个 STRUCT 类型,那么可以通过 user.address 得到这个用户的地址。

创建数据表

CREATE TABLE test(id int,course struct<course:string,score:int>)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
COLLECTION ITEMS TERMINATED BY ',';

数据

1 english,89
2 math,78
3 chinese,95

入库

LOAD DATA LOCAL INPATH '/home/hadoop/test.txt' OVERWRITE INTO TABLE test;

查询

hive> select * from test;
hive> select course from test;
hive> select t.course.course from test t; 
hive> select t.course.score from test t;

在这里插入图片描述

发布了180 篇原创文章 · 获赞 149 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_33208851/article/details/104807406