hive 数据类型

基本类型

数据类型长度格式
tinyint1 byte20
smalint2 byte20
int4 byte20
bigint8 byte20
boolean布尔true
float单精度浮点数3.14
double双精度浮点数3.14
string字符序列, 单双引号‘hello’
timestamp整数,浮点数,字符串距离1970.1.1经过的毫秒数

集合类型

数据类型描述举例
array数组,含有相同类型的元素,通过下标获取值,如列名[0]表示第一个元素array(‘hello’,’world’)
map键值对,通过键获取值,如列名[‘key’]获取字符串key对应的值map(‘key’,’value’)
struct结构体,类似键值对但不包含键,通过列名.first获得first对应的内容struct(‘hello’,’world’)

默认分隔符

分隔符功能备注
\n分割文本文件,每行作为一条记录
^A分割字段在linux下Ctrl+v Ctrl+a打出来,下同
^B分割array,struct,map内每个元素map中每组键值对为一个元素
^C分割map键和值

单行命令

命令功能
show databases;显示所有数据库
show tables;显示当前数据库下所有表
create database 数据库名 [location ‘数据库位置’ comment ‘数据库备注’];创建数据库
use 数据库;切换数据库,默认为default

创建表

关键字功能
EXTERNAL外部表,省略则创建内部表
ROW FORMAT DELIMITED设置自定义格式的分割符
fields terminated by设置列分隔符,默认为^A,常改为\t
collection items terminated by设置元素间分隔符,默认为^B
map keys terminated by设置键值间分隔符,默认为^C
lines terminated by设置文本中行分隔符,默认为\n
partitioned by设置分区名, 可将数据分配到不同分区内分目录保存,一级表示第一层目录
STORED AS textfile按文本文件类型保存表
LOCATION设置保存位置,默认在当前数据库下

删除数据库和表

删除命令功能
drop database [if exists] 数据库名 [cascade]存在则删除数据库下所有表和数据库
drop table [if exists] 表名存在则删除表

修改表

命令功能
rename to 新表名修改表名
add columns (列名 数据类型,…)向表中添加新列
drop column 列名删除表中指定列
change 列名 新列名 新数据类型修改表中指定列的列名和数据类型
replace columns (列名 数据类型 新列名 新数据类型,…)替换已有列的列名和数据类型,须一致
add partition (一级分区名=’自定义分区’,…) location ‘分区位置’添加新的分区,要求已表已存在分区,分区名须对应
partition (分区名=’自定义分区’) rename to partition (分区名=’新分区’)修改自定义分区名
drop partition (分区名=’自定义分区’,…)删除自定义分区

运算符

运算符功能适用范围
=,!=,>,<,>=,<=基本比较运算符所有基本数据类型
is NULL,is not NULL是否为空所有类型
like, rlike, regexp匹配成功返回则,匹配到null返回null,后两个支持正则字符串类型
+,-,*,/,%加减乘除取模所有数字类型
and, or, not, &&,, !
A[n]返回数组A中第n+1个元素array类型
M[key]返回MAP中key对应的值map类型
S.x返回结构体S中x对应的值struct类型

聚合函数

聚合函数功能返回类型
count统计查询的行数bigint
sum,avg,max,min对一列数据求和,平均,最大,最小值double
var_pop求方差double
stddev_pop求标准偏差double
covar_pop求协方差double
collect_set对array数组去重array

科学计算函数

科学计算函数功能返回类型
round(d,n)对浮点数d四舍五入保留n位小数double
floor(d)返回比浮点数d小的最大整数bigint
ceil(d)返回比浮点数d大的最小整数bigint
rand(n)以整数n作种子生成随机数double
exp(d)e的d次幂double
log(b,d)以b为底d的对数double
pow(d,p)d的p次幂double
sqrt(d)d的平方根double
abs(d)d的绝对值double
pmod(d,p)d对p取模double
sin, cos, tan, asin, acos, atan三角函数double
pi()π圆周率double

类型转换函数

类型转换函数 功能 返回类型
:----😐 :----: | :----:
cast(e as type) 将e转换成其他数据类型,失败返回null 转换后数据
binary(e) 将e转换成二进制

字符串函数

字符串函数功能返回类型
concat拼接多个字符串成一个字符串string
encode对字符串按指定编码集进行编码binary
decode对二进制按指定编码集进行解码string
instr查找字符串在目标字符串中的索引位置,从1开始int
length字符串长度int
lower,upper转换为小写/大写字母string
initcap首字母大写string
ltirm,trim去除前空格,去除前后空格string
parse_url抽取url指定部分的内容string
substr截取指定位置长度的字符串string
split按正则拆分字符串array
rpad左填充,指定填充长度和内容string
regexp_replace按正则替换目标字符串string
printf格式化打印字符串string
space打印多个空格string

表生成函数

类型转换函数功能返回类型
explode生成多行,每行对应数组中一个元素或一个键值对多行
stack将多列转换成多行多行
json_tuple从json中获取多个键作为一个元组返回tuple
parse_url_tuple元组形式获取url内容tuple

查询

SELECT [DISTINCT] 列名, ... 

FROM 表名 

[WHERE 条件] 

[GROUP BY 分组列] 

[HAVING 条件] 

[ORDER BY 排序列]

[CLUSTERED BY 分桶列[SORTED BY 排序列] INTO 分桶数 BUCKETS]

[CLUSTER BY 列| [DISTRIBUTE BY 列] [SORT BY 排序列]] 

[LIMIT 正整数];


FROM 表名 SELECT 查询字段 

case when 查询条件 then '表达式可做重命名' 

else '表达式' end;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值