Hive常用的基本操作指令

140 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

查看所有数据库

show databases;

查询表格内全部数据

 select * from tb_baoxian2;

use进入数据库

use text

从本地中加载数据到表里

load data local inpath '文件路径' overwrite into table 加载到那个表;

hive读取本地的data文件

先从本地文件上传到hdfs中

hdfs dfs -put film_log4.txt /
load data local inpath '/home/data.txt' into table stu;

![在这里插入图片描述](https://img-blog.csdnimg.cn/b29573542fb

创建表格指定分割符

 create table stu2(id int,name string) row format delimited fields terminated by' 分割格式';

创建表时指定换行

lines terminated by '\n'

创建表分割数据

fiellds terminatedby '分割值'

把查询的结果插入到指定表中

insert overwrite table stu3 select * from stu2;

把查询的结果插入到指定的本地下

insert overwrite local directory '/home/stu' row format delimited fields terminated by ' ' select * from stu2;

把查询的结果放到分布式目录

insert overwrite directory '/home/stu' row format delimited fields terminated by ' ' select * from stu2;

删除指定表

drop table stu1

删除数据库

drop database test;

内部表和外部表

创建一个外部表

create external table tb_baoxian1(id int,name string,type string,age int,time string,six string,number int,region string,city string) row format delimited fields terminated by ',' location '/home/baoxian/baoxian.csv';

创建一个分区表

 create table book(id int,name string) partitioned by(title string) row format delimited fields terminated by ' ';

分区表后面可以跟查询条件避免全表查询

把分区设置为非严格模式

set hive.exec.dynamic.partition.mode=nonstrict;

分区加载数据

load data  local inpath '/home/cn.txt' overwrite into table book partition(title='cn');
Loading data to table default.book partition (自定义字段=cn)

添加成功后数据后面会有一个字段 在这里插入图片描述

分区查询

查询自定义字段的数据

select * from book where title='cn';

在这里插入图片描述

添加多一个分区

在载入一次你要加载的数据即可 在这里插入图片描述 在这里插入图片描述

追加分区文件不覆盖之前字段内容

最大的用处是避免全表查询

load data  local inpath '/home/cn.txt' into table book partition(title='cn');
Loading data to table default.book partition (自定义字段=cn)

覆盖原来表中数据插入分区

insert overwrite  table tb_baoxian2 partition(yue) select *,month(time) as yue from tb_baoxian1;

保留原来表中数据插入分区

insert into table tb_baoxian2 partition(yue) select *,month(time) as yue from tb_baoxian1;

显示分区

show partitions book;

修复分区

把读取不到的分区信息导入

msck repair table book;


hive数据库信息位置和表信息位置

在这里插入图片描述 表存放在这边 在这里插入图片描述

动态分区

动态分区识别插入

      set hive.exec.dynamic.partition=true;
      set hive.exec.dynamic.partition.mode=nonstrict;

动态分区识别年月日

select *, year(time) from tb_baoxian1 limit 5;
select *, moth(time) from tb_baoxian1 limit 5;
select *, day(time) from tb_baoxian1 limit 5;