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. 常用的Jquery插件

    0.模块化前端框架(http://www.layui.com) 1.拖拽滑动验证码(http://www.geetest.com/,https://github.com/dyh1995/jquery. ...

  2. 1. Django系列之Django与ajax上传文件

    html代码如下: <div class="form-group"> <label for="exampleInputFile">附件上 ...

  3. 网站中使用echart

    在网站开发中,可能会使用折线图,圆饼图,等等 来丰富网页对数据的展示,可以使用echart http://echarts.baidu.com/tutorial.html#5%20%E5%88%86%E ...

  4. Python 类(一)

    这一篇让先抽象的了解下类与实例 一类的定义 从具体的程序设计观点来看: 类是一种数据结构.我们可以使用类来定义包含数据值和行为特性的对象(类对象). 类是封装逻辑和数据的另一种形式. 面向对象设计观点 ...

  5. Node.js之路【第二篇】Nodejs中的pip(NPM)&REPL

    什么是NPM 在学Python的时候我们肯定会使用第三方模块或者编写模块供别人使用,我们有一个非常好用的pip来帮我们管理我们的模块包!那么Nodejs重的模块包呢? 对没错就是NPM,他是随同Nod ...

  6. iTunes Connect 显示可供销售,但是AppStore 就是不显示新版本(异于往常版本更新)

    这次版本更新,从上传到审核通过不足8小时.由于是手动发布,第二天早上上班发布了新版本.但是不同于往常,这次等了很久也不见AppStore 更新新版本.检查一下iTunes Connect ,显示可供销 ...

  7. Mysql字符集设置

    转 基本概念 • 字符(Character)是指人类语言中最小的表义符号.例如’A'.’B'等:• 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encodi ...

  8. codevs3304 水果姐逛水果街

    题目描述 Description 水果姐今天心情不错,来到了水果街. 水果街有n家水果店,呈直线结构,编号为1~n,每家店能买水果也能卖水果,并且同一家店卖与买的价格一样. 学过oi的水果姐迅速发现了 ...

  9. _weak typeof(self) weakSelf = self;

    _weak typeof(self) weakSelf = self; (一)内存管理原则 1.默认strong,可选weak.strong下不管成员变量还是property,每次使用指针指向一个对象 ...

  10. [Machine Learning] 梯度下降法的三种形式BGD、SGD以及MBGD

    在应用机器学习算法时,我们通常采用梯度下降法来对采用的算法进行训练.其实,常用的梯度下降法还具体包含有三种不同的形式,它们也各自有着不同的优缺点. 下面我们以线性回归算法来对三种梯度下降法进行比较. ...