1.强制删除带有表的hive库:
drop database 库名 cascade;
2.设置显示当前使用的hive库:
hive> set hive.cli.print.current.db=true;
3.hive客户端设置运行队列:
hive>set tez.queue.name=fast;
4.hive中删除分区操作:
alter table fastdo_lte.tdlte_mro_locate_hour drop if exists partition(city="HANGZHOU",sdate=2018080114);
外部表删除数据的时候不能使用truncate,外部表的数据有hadoop管理。
5.向Hive分区中加载数据:
load data local inpath '/home/daxin/jdata/cfg_grid10.csv' into table cfg_grid10 partition(ds="20180821",ct="HANGZHOU");
6.查看Hive中的表结构:
desc tdlte_mro_locate_hour;
desc formatted tdlte_mro_locate_hour;(格式化后的完整信息)
7.查看hive中的函数以及用法:
show functions ;(查看函数)
desc function extended upper ;(查看用法)
8.查看Hive中所有的设置信息:
hive > set ;
9.Hive中几种常见的交互命令:
hive -help(查看命令用法)
10.Hive客户端中查看集群:
!hdfs dfs -ls /
如:!hdfs dfs -ls /apps/hive/warehouse/fastdo_lte.db;
11.Hive中不同创建表的方式:
根据原始表提取字段,可以加快数据处理的效率
create table if not exists wang_mro_locate_hour as select * from fastdo_lte.tdlte_mro_locate_hour limit 10000;
创建一个相同表结构的表,但是此时只是表结构相同,没有数据
create table if not exists wang_mro_locate_hour like fastdo_lte.tdlte_mro_locate_hour;
12.Hive内部表通过put导入数据后,通过sql查询不到对应的信息解决方式(只针对一级分区有效):
第一种方式 在mysql元数据中没有分区的元数据 通过sql语句查询不出对应的信息
dfs -mkdir -p /user/hive/warehouse/dept_part/day=20150913 ;
dfs -put /opt/datas/dept.txt /user/hive/warehouse/dept_part/day=20150913 ;
进行分区的修复 就是将分区信息添加到元数据中 修复后一切正常
hive (default)> msck repair table dept_part ;
第二种方式 在mysql元数据中没有分区的元数据 通过sql语句查询不出对应的信息
dfs -mkdir -p /user/hive/warehouse/dept_part/day=20150914 ;
dfs -put /opt/datas/dept.txt /user/hive/warehouse/dept_part/day=20150914 ;
进行分区的修复 就是将分区信息添加到元数据中 修复后一切正常
alter table dept_part add partition(day='20150914');
13.Hive中group by和having的使用:
group by /having 查询结果的字段要么是group by 后的字段 要么是聚会函数的字段分组
* where 是针对单条记录进行筛选
* having 是针对分组结果进行筛选 经常与group by连用
select city, sdate,count(1) from tdlte_mro_locate_hour group by city,sdate;
14.Hive客户端查询显示不带表名的列名:
set hive.resultset.use.unique.column.names=false;
set hive.cli.print.header=true;
15.Hive外部表多级分区数据迁移后,数据恢复:
alter table tdlte_mro_locate_hour_old add if not exists partition(city='JINHUA',sdate='2018100108') location '/apps/hive/warehouse/fastdo_lte.db/tdlte_mro_locate_hour_old/JINHUA/2018100108';
16.Hive外部表数据源移动后,表和数据重新建立联系:
alter table tdlte_mro_locate_hour_old set location '/apps/hive/warehouse/fastdo_lte.db/tdlte_mro_locate_hour_old';