该笔记主要整理了《Hive编程指南》中一些常见的操作命令,大致如下(持续补充中):
1. 查看/设置/修改变量
2. 执行命令
3. 搜索相关内容
4. 查看库表信息
5. 创建表
6. 分区
7. 修改表(重命名、修改列、删除列、增加列)
8. 找到表位置并导出至本地
9. 去空格
10. case...when...then句式
11. 操作符
12. group by...having句式
13. JOIN
14. order by和sort by
15. 抽样查询
16. 视图
17. 分桶表
18. 函数
19. with...as
20. rank() over (partition by ... order by ... asc/desc)
21. 时间相关的函数(from_unixtime,unix_timestamp,date_add,months_between)
22.substr()
23.regexp_replace()
24.动态分区
1. 查看/设置/修改变量
$ hive
############
# 查询环境变量
############
hive>set env:HOME;
# 打印命名空间hivevar, hiveconf, system和env所有变量
hive>set;
# 还打印Hadoop所定义的所有属性
hive>set -v;
############
# 设置hive变量
############
hive>set hivevar:foo=bar
# 查看刚设置的变量
hive>set foo;
hive>set hivevar:foo;
############
# 修改属性变量
############
# hiveconf: Hive相关的配置属性
# 不进入Hive进行配置属性修改
hive--hiveocnf hive.cli.print.current.db=true# 进入hive进行配置修改
hive>set hiveconf:hive.cli.print.current_db=true;
2. 执行命令
# 执行命令方式1:使用下面的 “一次使用”命令(-e是指一次执行,-S是指静默模式,在输出结果中不显示Ok和Time taken字段)
hive-e -S "select * from mytable limit 3";
# 执行命令方式2:调用Hive执行hql文件
hive -f /path/query.hql
# 执行命令方式3:在Hive shell内执行hql文件
$ hive
hive>source /path/query.hql
3. 搜索相关内容
# 模糊搜索set命令的输出结果中某个于warehouse相关的属性
$ hive-S -e "set" | grepwarehouse
hive.metastore.warehouse.dir=/user/hive/warehouse
hive.warehouse.subdir.inherit.perms=false
4. 查看库表信息
# 查看数据库,使用like是以ahf开头,以其他字符结尾(即.*)的数据库名
show databases;
show databases like 'ahf.*';
# 查看表的详细表结构信息(formatted比extended输出内容更详细且可读性更高)
describe mydb.table;
describe formatted mydb.table;
describe extended mydb.table;
5. 创建表
# 拷贝表结构,而不拷贝数据(用like)create table if not exists mydb.mytable likemydb.mytable2;
# 拷贝表结构,且拷贝数据(用as)create table if not exists mydb.mytable as
select * frommydb.mytable2;
# 直接创建表结构create table if not existsmydb.mytable
(
id string comment'id',
name string comment'姓名')
partitionedby(class string)
storedas orc;
6. 分区
# 建立分区create table(字段1 字段类型, 字