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. Java虚拟机(JVM)以及跨平台原理详细的介绍

    相信大家已经了解到Java具有跨平台的特性,可以"一次编译,到处运行",在Windows下编写的程序,无需任何修改就可以在Linux下运行,这是C和C++很难做到的.那么,跨平台是 ...

  2. mybits批量插入

    <!--批量插入--> <insert id="batchSave" parameterType="java.util.List"> i ...

  3. 转:sublime上使用git连接github

    "工欲善其事,必先利其器." 这是古人的教诲,也是一个高效率的工程师需要遵循的法则之一.从大学开始写Java使用了JBuilder,Eclipse,后来写PHP用了Zend,写Ja ...

  4. 【原创】PageAdminCMS 前台SQL注入漏洞(2)

    之前根据公司的要求找了几个web程序的漏洞提交CNVVD,发现漏洞提交上去两个月了,CNVVD却没有任何回应,我提交的这几个漏洞却悄悄的修补掉了. 文章作者:rebeyond 受影响版本:V3.0 漏 ...

  5. thinkphp中的查询语句

    <?php namespace Admin\Controller; use Think\Controller; class MainController extends Controller { ...

  6. 手持设备点击响应速度,鼠标事件与touch事件的那些事

    前言 现在一直在做移动端的开发,这次将单页应用的网页内嵌入了app,于是老大反映了一个问题:app应用点击响应慢!我开始不以为然,于是拿着网页版的试了试,好像确实有一定延迟,于是开始了研究,最后选择了 ...

  7. DI中Transient Scoped Singleton Instance的区别

    Observe which of the OperationId values varies within a request, and between requests. Transient obj ...

  8. RabbitMQ 简介

    1. MQ描述 MQ全程为Message Queue,消息队列(MQ)是一种应用程序对应用程序通信的方法.应用程序通过读写出入队列的消息来通信,而无需专用连接来链接它们.消息传递指的是程序之间通过在消 ...

  9. 第4月第1天 makefile automake

    1. gnu make的函数调用是$,比如 $(subst ee,EE,feet on the street) 规则中“TARGETS”可以是空格分开的多个文件名 a all: echo $(subs ...

  10. 释放修改OS X 10.11系统文件权限【转】

    序言:有时要替换相关的(系统目录下的)文件以完成软件的破解,但在 OS X 10.11 系统图形界面下,Root(系统超级用户)已‘转变’为 Administrator(管理员用户),选择系统文件夹( ...