hive编程指南——读书笔记(无知拾遗)

时间:2022-09-06 23:06:31

set hive.metastore.warehouse.dir=/user/myname/hive/warehouse;

用户设定自己的数据仓库目录。不影响其他用户。也在$HOME/.hiverc中设置,则每次启动hive自动加载















hive -(d,ef,H,h,i,p,S,v)





定义变量var,在hql中直接引用${var}

set (显示或修改)

set; (看所有变量)

set env:HOME;

set -V;

不加-V打印命名空间

hive --define foo=bar (-d简写)

set foo (查看变量)

set hivevar:foo=bar2(重赋值)

set hivevar:foo (查看)





hive -S -e "select * from..." (-S是静默模式,去掉ok、time taken等辅助输出信息,只保留查询结果)





hive -f 等同于 source





hive -i 指定hive初始化时加载文件。没有就自动加载$HOME/.hiverc中设置,则每次启动hive自动加载





$HOME/.history 历史100条命令





CLI(hive shell)中 用! 执行shell命令





显示字段名称 set hive.cil.print.header=true; 





字符串s 转整型 cast(s as int) 





分隔符 ^A(\001)^B(\002)^C(\001) 级别递减,列,字段内元素间(如map、struct)分隔,元素的键值之间分隔





ROW FORMAT DELIMITED 是操作一行记录间各字段的分隔,行和STORED不需要













DATABASE操作:

create DATABASE IF NOT EXITS A

LOCATION '$PATH' --创建database会给一个hdfs存储目录,以A.db命名的目录,LOCATION可指定A在hdfs的存储位置

show databases LIKE 'h*'

另外 WITH添加database的描述





table操作

create table db.A  --可以在其他db(非当前db)下建表





COMMENT 添加表说明文档

TBLPROPERTIES 按键值对格式为表添加额外说明





copy一张表:create mydb.A2 LIKE mydb.A





show tables IN mydb 指定db下的表

show tables 'A*' 过滤出指定的类似表





desc formatted/extended mytable





分区: