第3章 Hive数据类型

3.1 基本数据类型

对于Hive的String类型相当于数据库的varchar类型,该类型是一个可变的字符串,不过它不能声明其中最多能存储多少个字符,理论上它可以存储2GB的字符数。

3.2 集合数据类型

Hive有三种复杂数据类型ARRAYMAPSTRUCT。ARRAY和MAP与Java中的Array和Map类似,而STRUCT与C语言中的Struct类似,它封装了一个命名字段集合,复杂数据类型允许任意层次的嵌套。

案例实操

  1) 假设某表有如下一行,我们用JSON格式来表示其数据结构。在Hive下访问的格式为

{"name": "songsong","friends": ["bingbing" , "lili"] ,       //列表Array, "children": {                      //键值Map,"xiao song": 18 ,"xiaoxiao song": 19}"address": {                      //结构Struct,"street": "hui long guan" ,"city": "beijing" }
}

2)基于上述数据结构,我们在Hive里创建对应的表,并导入数据。

  创建本地测试文件test.txt

songsong,bingbing_lili,xiao song:18_xiaoxiao song:19,hui long guan_beijing
yangyang,caicai_susu,xiao yang:18_xiaoxiao yang:19,chao yang_beijing

注意:MAP,STRUCT和ARRAY里的元素间关系都可以用同一个字符表示,这里用“_”。

3)Hive上创建测试表test

create table test(
name string,
friends array<string>,
children map<string, int>,
address struct<street:string, city:string>
)
row format delimited fields terminated by ','
collection items terminated by '_'
map keys terminated by ':'
lines terminated by '\n';

字段解释:

row format delimited fields terminated by ','  -- 列分隔符

collection items terminated by '_'   --MAP STRUCT 和 ARRAY 的分隔符(数据分割符号)

map keys terminated by ':' -- MAP中的key与value的分隔符

lines terminated by '\n'; -- 行分隔符

4)导入文本数据到测试表

hive (default)> load data local inpath ‘/opt/module/datas/test.txt’into table test

5)访问三种集合列里的数据,以下分别是ARRAY,MAP,STRUCT的访问方式

hive (default)> select friends[1],children['xiao song'],address.city from test
where name="songsong";
OK
_c0     _c1     city
lili    18      beijing
Time taken: 0.076 seconds, Fetched: 1 row(s)

3.3 类型转化

  Hive的原子数据类型是可以进行隐式转换的,类似于Java的类型转换,例如某表达式使用INT类型,TINYINT会自动转换为INT类型,但是Hive不会进行反向转化,例如,某表达式使用TINYINT类型,INT不会自动转换为TINYINT类型,它会返回错误,除非使用CAST操作。

  1.隐式类型转换规则如下

  (1)任何整数类型都可以隐式地转换为一个范围更广的类型,如TINYINT可以转换成INT,INT可以转换成BIGINT。

  (2)所有整数类型、FLOAT和STRING类型都可以隐式地转换成DOUBLE。

  (3)TINYINT、SMALLINT、INT都可以转换为FLOAT。

  (4)BOOLEAN类型不可以转换为任何其它的类型。

  2.可以使用CAST操作显示进行数据类型转换

  例如CAST('1' AS INT)将把字符串'1' 转换成整数1;如果强制类型转换失败,如执行CAST('X' AS INT),表达式返回空值 NULL。

转载于:https://www.cnblogs.com/Diyo/p/11462548.html

第3章 Hive数据类型相关推荐

  1. hive 数据类型 java_Hive数据类型

    第3章Hive数据类型 3.1基本数据类型 Hive数据类型 Java数据类型 长度 例子 TINYINT byte 1byte有符号整数 20 SMALINT short 2byte有符号整数 20 ...

  2. c语言求两者之间最小数,C语言课件第2章基本数据类型.ppt

    C语言课件第2章基本数据类型 第 2 章 基本数据类型 1.标识符 例2.1 常量和变量的使用. #include "stdio.h" #define WIDTH 80 //定义符 ...

  3. 第九章构造数据类型实验

    ---恢复内容开始--- 第九章构造数据类型实验 一.实验项目: 1.结构体变量的应用. 2.结构体数组的应用. 3.共用体的应用. 4.机构体指针的应用. 姓名:李儿龙    实验地点:教学楼514 ...

  4. 《Go语言圣经》学习笔记 第四章 复合数据类型

    <Go语言圣经>学习笔记 第四章 复合数据类型 目录 数组 Slice Map 结构体 JSON 文本和HTML模板 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. ...

  5. 《Go语言圣经》学习笔记 第三章 基础数据类型

    <Go语言圣经>学习笔记 第三章 基础数据类型 目录 整型 浮点数 复数 布尔型 字符串 常量 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语言小白学习笔记, ...

  6. 字符串是单一字符的无序组合吗_计算机二级教程 Python语言程序设计 第6章组合数据类型...

    第6章组合数据类型 第六章学习知识导图 考点主要是: 1) 组合数据类型的基本概念 2) 列表类型:定义.索引.切片 3) 列表类型的操作:列表的操作函数.列表的操作方法 4) 字典类型:定义.索引 ...

  7. hive mysql类型,(二)Hive数据类型、数据定义、数据操作和查询

    1.数据类型 1.1 基本数据类型Hive数据类型长度例子TINYINT1byte有符号整数20 SMALINT2byte有符号整数20 INT4byte有符号整数20 BIGINT8byte有符号整 ...

  8. 【C语言】第九章 复杂数据类型与结构体 题解

    第九章 复杂数据类型与结构体 1.略 2.略 3.略 4.代码如下: #include <stdio.h>struct teacher {int card_id;char name[20] ...

  9. Hive——Hive数据类型

    1.基本数据类型 Hive数据类型 Java数据类型 长度 例子 TINYINT byte 1byte有符号整数 20 SMALINT short 2byte有符号整数 20 INT int 4byt ...

  10. C语言(苏小红)——第二章基本数据类型

    C语言程序设计 第二章基本数据类型 文章目录 C语言程序设计 2.1 常量与变量 2.1.1 常量 (Constant) 2.1.2 变量(Variable) 2.2 简单屏幕输出 2.3 计算变量或 ...

最新文章

  1. 简单的安卓app小程序代码_开发一款APP大概需要多少钱?
  2. mysql php遍历数据6_PHP 循环遍历数据里中的内容
  3. Android之如何使用快速联系徽章
  4. 埃拉托斯特尼筛法 快速查找素数
  5. java 创建线程的三种方法_java 创建线程的几种方式
  6. python+OpenCV图像处理(二)图像像素的访问、通道的合并与分离
  7. 如何列出包含给定提交的分支?
  8. 读jQuery源码释疑笔记3
  9. android 卡片收缩展开,jQuery和CSS3炫酷堆叠卡片展开和收缩特效
  10. 【我的OpenGL学习进阶之旅】Assimp库支持哪些3D模型格式?
  11. 跟兄弟连学PHP PDF 分享
  12. Talk预告 | 港科大(广州)助理教授王泽宇: 提升数字内容创作中的创意实现与迭代过程
  13. 饿了么小程序容器首屏秒开优化实践
  14. ubuntu18.04设置静态IP地址
  15. 小米5月10日发布会--miui8
  16. mysql 解压版 64位_Windows解压版安装64位mysql-5.7.19
  17. 使用selenium获取网页源码
  18. 手机处理器天梯图2021
  19. Python批量修改图片名称
  20. MySQL-运算符详解

热门文章

  1. kent beck_肯特·沙基(Kent Sharkey)身着“ heezy fo'sheezy babay”!
  2. 手写简易版spring MVC框架
  3. 前端实战:利用CSS+HTML实现B站用户名片样式
  4. Python爬虫爬取链家租房信息(python大作业)
  5. 二元logistic回归、ROC曲线及cutoff值
  6. 【JavaWeb】在office word中使用merge field出现空行问题
  7. 异形双柱体阵列纳米粒:针状/花状纳米粒子/纳米金星/金笼/金壳/三角形纳米金
  8. 第二章 计算机的运算方法
  9. Gris游戏开发-day03
  10. 目前最为出色的Wii模拟器,可以在电脑上运行绝大多数Wii游戏,对低端配置完美支持,绝对的神器!