惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
D
Docker
酷 壳 – CoolShell
酷 壳 – CoolShell
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
美团技术团队
量子位
M
MIT News - Artificial intelligence
Apple Machine Learning Research
Apple Machine Learning Research
阮一峰的网络日志
阮一峰的网络日志
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
腾讯CDC
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
小众软件
小众软件
博客园 - 司徒正美
罗磊的独立博客
云风的 BLOG
云风的 BLOG
B
Blog RSS Feed
博客园 - 聂微东

博客园 - GeneJiang

窗口函数的使用 拉链表(Zipper Table)完整总结 —— 数据仓库 SCD Type 2 的经典实现 Kimball 维度建模:数据仓库领域最实用的“用户友好”方法论 DMP 数据接入测试全攻略:从“水龙头”把关到端到端信任 —— 理论解析 + 阿里云 DataWorks、AWS Glue、Azure Data Factory + 自研 EMR(基于 CDH)实战经验 ETL 全链路数据污染与逻辑错误定位实战经验分享 资产损失防控关键点-那些年被薅的“羊毛” 计算广告中常用的计算单位 MVC设计模式(Python) Jupyter NoteBook 的快捷键使用指南 Hive常用函数 基于TestNG和Maven的接口测试之(一)- 基础配置 195 Tenth line-取第十行 Python常用库之Requests自我总结 Linux基本命令(一) Presto Step by Step之一Presto简介 python 判断字符串是否包含子字符串 Python常用的排序 CentOS7安装(三)- 配置阿里云yum源 OSQA的配置 MySQL学习 (三) Limit-Distinct-Union
Hive Tutorial(一) - Hive的数据类型
GeneJiang · 2019-07-16 · via 博客园 - GeneJiang

简介

Hive支持关系型数据库中的大多数基本数据类型,同时也支持关系型数据库中很少出现的3种集合数据类型

基本数据类型

Hive支持多种不同长度的整型和浮点型数据类型,支持布尔类型,也支持无长度限制的字符串类型。Hive v0.8.0版本中增加了时间戳数据类型和二进制数组数据类型。

表1: 基本数据类型

数据类型 长度 例子
TINYINT 1 byte有符号整数 10
SMALINT 2 byte有符号整数 10
INT 4 byte有符号整数 10
BIGINT 8byte有符号整数 10
BOOLEAN 布尔类型,true或者false False
FLOAT 单精度浮点数 1.14159
DOUBLE 双精度浮点数 1.14159
STRING 字符序列。 可以指定字符集。
使用单引号或者双引号
'now is the time',“for all good men'
TIMESTAMP 整数,浮点数或者字符串 1327882394 (Unix 新纪元秒)
,1327882394.123456789 (Unix新纪元秒并跟随有纳秒数)
'2012-02-0312:34:56. 123456789'(JDBC所兼容的java.sql.Timestamp时间格式)
BINARY 字节数组

集合数据类型

表2: 集合数据类型

数据类型 长度 例子
struct 和C语言中的struct或者“对象”类似,都可以通过STRUCT“点”符号访问元素内容。
例如,如果某个列的数据类型STRUCT{first STRING,last STRING}
那么第1个元素可以通过字段名.first来引用
struct ('John','Doe')
MAP MAP是一组键值对元组集合,使用数组表示法(例如['key'])可以访问元素。
例如,如果某个列的数MAP类型是MAP,其中键->值对是‘first’->‘John''last'->'Doe’
那么可以通过字段名[last']获取最后1个元素
map('first', 'John', 'last', 'Doe')
array 数组是一组具有相同类型和名称的变量的集合。
这ARRAY些变量称为数组的元素,每个数组元素都有一个编Array('John','Doe')号,编号从零开始。
例如,数组值为["John','Doe'],那么第2个元素可以通过数组名[]进行引用
Array('Joe', 'John')

文本文件数据编码

表3: Hive 中默认的记录和字段分割符

分隔符 描述
\n 对于文本文件来说,每行都是一条记录,因此换行符可以分割记录
^A (Ctrl+A) 用于分隔字段(列)。 在CREATE TABLE语句中可以使用八进制编码\001表示
^B 用于分隔ARRARY或者STRUCT中的元素,或用于MAP中键-值对之间的分隔。
在CREATE TABLE语句中可以使用八进制编码\002表示
^C 用于MAP中键和值之间的分隔。在CREATE TABLE语句中可以使用八进制编码\003表示