hive提供一种复合类型的数据

struct:可以使用“.”来存取数据
map:可以使用键值对来存取数据
array:array中存取的数据为相同类型,其中的数据可以通过下表获取数据
 
创建 struct类型
create table student_struct(id INT, info struct<name:STRING, age:INT>)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' //指定表在加载数据时候的列分割符
COLLECTION ITEMS TERMINATED BY ':'; //指定每个字段之间的item的分隔符
导入测试数据
1,zhang:24
2,wang:23
3,feng:22
4,li:22
5,zhou:21
6,xing:20
7,cai:19
8,yi:18
9,lan:17
查询表中数据
使用struct的"."来查询数据
hive> select*from student_struct where info.age>20;
OK
1 {"name":"zhang","age":24}
2 {"name":"wang","age":23}
3 {"name":"feng","age":22}
4 {"name":"li","age":22}
5 {"name":"zhou","age":21}
Time taken: 2.31 seconds, Fetched: 5 row(s)
创建array
create table student_array(id INT, stuArray array<String>)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
COLLECTION ITEMS TERMINATED BY ':';
加载测试数据(stuArray里面存储的是相同的数据类型,可以有多个值)
同 struct 数据
查询表中数据(array类型,可以通过你创建表时定义列的别名,通过下标来获取数据)
hive> select*from student_array where stuArray[]>20;
OK
1 ["zhang","24"]
2 ["wang","23"]
3 ["feng","22"]
4 ["li","22"]
5 ["zhou","21"]
Time taken: 2.63 seconds, Fetched: 5 row(s)
创建Map(stuMap可以有多个,我这里写了两个)
create table student_map(id string, stuMap map<string, int>)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
COLLECTION ITEMS TERMINATED BY ','
MAP KEYS TERMINATED BY ':';
导入测试数据
1 zhang:24,shangHai:100
2 wang:23,shangHai:200
3 feng:22,shangHai:1900
4 li:22,shangHai:2900
5 zhou:21,shangHai:1200
6 xing:20,shangHai:1200
7 cai:19,shangHai:600
8 yi:18,shangHai:7600
9 lan:17,shangHai:8000
查询数据
hive> select * from student_map where stuMap['shangHai']=100;
OK
1 {"zhang":24,"shangHai":100}
Time taken: 0.944 seconds, Fetched: 1 row(s)
hive>

hive 复杂类型的更多相关文章

  1. Hive 表类型简述

    Hive 表类型简述   表类型一.管理表或内部表Table Type:  MANAGED_TABLE example: create table  Inner(id int,name string, ...

  2. sqoop mysql导入hive 数值类型变成null的问题分析

    问题描述:mysql通过sqoop导入到hive表中,发现有个别数据类型为int或tinyint的列导入后数据为null.设置各种行分隔符,列分隔符都没有效果. 问题分析:hive中单独将有问题的那几 ...

  3. hive复杂类型实战

    1.hive 数组简单实践: CREATE TABLE `emp`( `name` string, `emps` array<string>) ROW FORMAT SERDE 'org. ...

  4. 解决hue/hiveserver2对于hive date类型显示为NULL的问题

    用户报在Hue中执行一条sql:select admission_date, discharge_date,birth_date from hm_004_20170309141149.inpatien ...

  5. 转载:几种 hive join 类型简介

    作为数据分析中经常进行的join 操作,传统DBMS 数据库已经将各种算法优化到了极致,而对于hadoop 使用的mapreduce 所进行的join 操作,去年开始也是有各种不同的算法论文出现,讨论 ...

  6. Hive 基本语法操练(四):Hive 复合类型

    hive语法中主要提供了以下复合数据类型: 1)Structs: structs内部的数据可以通过DOT(.)来存取.例如,表中一列c的类型为STRUCT{a INT; b INT},我们可以通过c. ...

  7. hive复杂类型与java类型的对应

    因为要往自定义的UDF传入复杂类型,所以需要对于这块的对应简单做一下总结 string java.lang.String, org.apache.hadoop.io.Text int int, jav ...

  8. Hive 存储类型 StoreType

    file_format: : SEQUENCEFILE | TEXTFILE -- (Default, depending on hive.default.fileformat configurati ...

  9. hive 表类型

    Hive表有受控表(内部表).外部表.分区表.桶表四种.   内部表,就是一般的表,前面讲到的表都是内布标,当表定义被删除的时候,表中的数据随之一并被删除.   外部表,数据存在与否和表的定义互不约束 ...

随机推荐

  1. Dell R730 配置完RAID后装系统找不到硬盘。

    1. 各硬盘只是灯都正常.硬件无故障. 2. 8个600G硬盘做的RAID0和RAID5后都在装系统选盘处找不到硬盘.(注意: 第一次做raid 时,没有进行初始化init.后补做也无效,一直复现这个 ...

  2. pageX、clientX、screenX、offsetX、layerX、x

    参考:http://www.cnblogs.com/xesam/archive/2011/12/08/2280509.html chrome: e.pageX--相对整个页面的坐标e.layerX-- ...

  3. springboot + mysql 编写

    1.springboot+mysql连接因为用的是hibernate框架,所以首先修改model,增加如下内容:

  4. eclipse 快捷键大全(转载)

    Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当 ...

  5. C#技术漫谈之垃圾回收机制(GC)

    GC的前世与今生 虽然本文是以.NET作为目标来讲述GC,但是GC的概念并非才诞生不久.早在1958年,由鼎鼎大名的图林奖得主John McCarthy所实现的Lisp语言就已经提供了GC的功能,这是 ...

  6. 记一次WinForm中屏蔽空格键对按钮的作用

    事件的起因是在做一个项目功能时,添加快捷键关闭声音,这个键最终选择了空格键,但是当按下空格键时,会把窗体中获取焦点的控件(比如按钮,文本框等)的单击事件触发,所以要屏蔽这个现象. 开始使用各种方法,在 ...

  7. [Android]学习笔记之布局

    5大布局,其中前3个是常用的,第四个绝对布局已经提示deprecated ![](http://images2015.cnblogs.com/blog/194303/201611/194303-201 ...

  8. 对路径的访问被拒绝,解决之后又报-未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。

    服务器环境:Server 2008  64位系统 问题:在导入Excel题录表时报错,1对路径的访问被拒绝,2未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序. 解决方案 ...

  9. 关于node的http模块

    var http = require('http'); /** * 创建服务器的两种写法,第一种写法如下 * 由于server已经继承了EventEmitter的事件功能,所以可以使用高级函数编写方式 ...

  10. mySql 远程连接(is not allowed to connect to this MySQL server)

    如果你想连接你的mysql的时候发生这个错误: ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL serve ...