hive语法中主要提供了以下复合数据类型:

1)Structs: structs内部的数据可以通过DOT(.)来存取。例如,表中一列c的类型为STRUCT{a INT; b INT},我们可以通过c.a来访问域a。

2)Map(K-V对):访问指定域可以通过["指定域名称"]进行。例如,一个Map中M包含了一个group->gid的K-V对,gid的值可以通过M['group']来获取。

3)Array:array中的数据为相同类型。例如,假如array A中元素['a','b','c'],则A[1]的值为'b'

1、Struct使用

1) 建表

hive> create table student_test(id int, info struct<name:string, age:int>) row format delimited fields terminated by ',' collection items terminated by ':';
OK
Time taken: 0.386 seconds

 hive> show tables;

 OK

 student_test

 Time taken: 0.046 seconds, Fetched: 1 row(s)

'FIELDS TERMINATED BY' :字段与字段之间的分隔符。'COLLECTION ITEMS TERMINATED BY' :一个字段各个item的分隔符。

2) 导入数据

[hadoop@master ~]$ cd /home/hadoop/test

[hadoop@master test]$ sudo vim test1.txt

1,zhou:30

2,yan:30

3,chen:20

4,li:80

[hadoop@master test]$ ll

total 12

-rw-r--r-- 1 root root  43 May 24 03:40 test1.txt

-rw-r--r-- 1 root root 106 May 18 04:41 test.txt

-rw-r--r-- 1 root root 421 May 18 04:03 user.txt

hive> load data local inpath '/home/hadoop/test/test1.txt' into table student_test;

Loading data to table hive.student_test

Table hive.student_test stats: [numFiles=1, totalSize=37]

OK

Time taken: 0.363 seconds

3) 查询数据

hive> select info.age from student_test;
OK
30
30
20
80
Time taken: 0.078 seconds, Fetched: 4 row(s)

2、Array使用

1) 建表

hive> create table class_test(name string, stu_id_list array<int>) row format delimited fields terminated by ',' collection items terminated by ':';
OK
Time taken: 0.079 seconds

2) 导入数据

[hadoop@master test]$ sudo vim test2.txt
034,1:2:3:4
035,5:6
036,7:8:9:10
hive> load data local inpath '/home/hadoop/test/test2.txt' into table class_test;
Loading data to table hive.class_test
Table hive.class_test stats: [numFiles=1, totalSize=33]
OK
Time taken: 0.299 seconds

3) 查询

hive> select stu_id_list[3] from class_test;
OK
4
NULL
10
Time taken: 0.048 seconds, Fetched: 3 row(s)

3、Map使用

1) 建表

hive> create table employee(id string, perf map<string, int>) row format delimited fields terminated by '\t' collection items terminated by ',' map keys terminated by ':';
OK
Time taken: 0.082 seconds

‘MAP KEYS TERMINATED BY’ :key value分隔符

2) 导入数据

[hadoop@master test]$ sudo vim test3.txt
1       job:80,team:60,person:70
2       job:60,team:80
3       job:90,team:70,person:100
hive> load data local inpath '/home/hadoop/test/test3.txt' into table employee;
Loading data to table default.employee
Table default.employee stats: [numFiles=1, totalSize=72]
OK
Time taken: 0.643 seconds

3) 查询

hive> select perf['person'] from employee;
OK
70
NULL
100
Time taken: 0.473 seconds, Fetched: 3 row(s)

以上就是博主为大家介绍的这一板块的主要内容,这都是博主自己的学习过程,希望能给大家带来一定的指导作用,有用的还望大家点个支持,如果对你没用也望包涵,有错误烦请指出。如有期待可关注博主以第一时间获取更新哦,谢谢! 

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/zimo-jing/p/9079161.html

Hive 基本语法操练(四):Hive 复合类型相关推荐

  1. c++primer plus 6 读书笔记 第四章 复合类型

    目录 第4章复合类型 4.1 数组 4.1.1 4.1.2 数组的初始化规则 4.1.3C ++数组初始化方法使用{} 赋值,禁止缩窄转换. 4.2 字符串 4.2.1 拼接字符串常量 4.2.2 在 ...

  2. Hive学习之路(四):Hive内置函数介绍与实现WordCount

    内容简介 一.Hive内置函数介绍 二.Hive常用内置函数介绍 1.数值计算函数 2.字符串操作函数 3.日期函数 4.聚合函数 5.表生成函数 三.使用Hive函数完成WordCount 1.创建 ...

  3. C++ primer Plus(第六版)中文版 第四章 复合类型 编程答案

    // 第三章.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream>//预编译,使用iostre ...

  4. C++Primer Plus笔记——第四章 复合类型及课后编程练习答案

    目录 本章小结 程序清单 课后编程习题答案 本章小结 本章主要论述了数组.指针和引用.在C + +语言中,它们是相互交织在一起的,对其中一个概念的理解有助于对其他槪念的理解.       数组是一个由 ...

  5. 英语语法---四种句子类型的介绍

    英语语法 句子-四种句子类型的介绍 1. 陈述句(Declarative Sentence) 1.1 肯定句 1.2 一般否定句 2. 感叹句(Exclamatory) 2.1 What引导的感叹句 ...

  6. 业内公认的 OLAP 数据库黑马 ClickHouse 有哪些复合类型

    ClickHouse 是一款由俄罗斯Yandex公司开源的OLAP数据库,拥有者卓越的性能表现,在官方公布的基准测试中,ClickHouse的平均响应速度是Vertica的2.63倍.InfiniDB ...

  7. 复合类型_没有学不会的python--复合类型(1)--概念和元组

    其实复合类型并不复杂,对于没有学习过python的朋友来说,完全不用担心. 复合类型是什么? 前面我们有讲述过简单数据类型,由于我在多个平台都有上传文章,所以这里就不贴出链接来了,烦请有需要的朋友自己 ...

  8. 2021年大数据Hive(四):Hive查询语法

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 hive查询语法 一.SELECT语句 1.语句结构 2.全表查 ...

  9. hive 复合类型_hive 常用函数整理 9.复合类型操作

    1. map类型构建: map 语法: map (key1, value1, key2, value2, -) 说明:根据输入的key和value对构建map类型 举例: hive> Creat ...

最新文章

  1. springJDBC实现查询方法二
  2. Java --Lamda表达式
  3. BCB key事件中判断Shift、Alt、Ctrl状态
  4. 删除机器人 异星工厂_10个视频,它们是国内智能工厂的标杆
  5. 信息抽取(三)三元关系抽取——改良后的层叠式指针网络,让我的模型F1提升近4%(接上篇)
  6. ROS-Kinetic 中使用XSENS MTI 1 姿态传感器
  7. jstree 节点拖拽保存数据库
  8. 简明Python教程学习笔记_6_面向对象编程
  9. android uber启动动画,仿 Uber 视频背景登录界面以及登录动画
  10. Hammock for REST
  11. 农作物分布数据、作物类型分布、农田分布数据、土地利用数据、植被类型数据、物候数据、NDVI数据
  12. 如何利用c语言写九九乘法表
  13. 四川托普计算机职业学校教务管理系统,四川托普信息技术职业学院教务处
  14. 央行数字货币在技术上是如何实现的
  15. 如何避免IE浏览器自动升级到版本11
  16. 标识解析数据网关IDG S800发布上线
  17. L1-009 N个数求和 (20 分)(C语言)(测试点3和测试点5)
  18. ebay获取商品详情 API接口
  19. GLES2.0中文API-glShaderBinary
  20. android环境监测,基于Wi―Fi和Android家居环境监测与实现

热门文章

  1. 杭电 1272 poj 1308 小希的迷宫
  2. 几种开源分词工具的比較
  3. excel java concat
  4. OA办公系统使用之:Tomcat与mysql的几个常见问题
  5. gedit emacs
  6. 深入理解 Laravel Eloquent(三)——模型间关系(关联)
  7. iOS中UITextField 使用全面解析
  8. 北大校长王恩哥送给毕业生的十句话
  9. Java 理论与实践: 流行的原子——新原子类是 java.util.concurrent 的隐藏精华(转载)...
  10. [Korean]发音