Hive基本操作命令

 

Hive DDL 操作

创建表

1. CREATE table

2. CREAT Table AS

拷贝表结构的同时会,拷贝表中的数据。

3. CREATE TABLE table_name LIKE table_name_other;

只拷贝表结构,并不会拷贝数据。

修改表

1. 修改表名称

alter table t1 rename to t2

2. 修改表属性

alter table t2 set tblproperties('comment'='table comment');

3. 添加序列化属性

alter table t2 set serdeproperties('field.delim'=',')

修改列

1. 修改列名,类型,位置,注释

alter table t1 change a a1 string after b;

after b表示修改的列放到b的后面。

2. 添加,替换列

alter table t1 add colums(a int);

alter table t1 replace  colums(a int , b tint);

修改分区

1. 添加分区

alter table t1 add partition(dt=2018-12-12', country='cn') location '/user/dfs/data/hive/t1';

location必须是一个目录。

2. 修改分区

alter table t1 add partition(dt=2018-12-12', country='cn') set location '/user/dfs/data/hive/t2';

3. 重命名分区

alter table t1 add partition(dt=2018-12-12', country='cn') rename to partition(dt=2017-12-12', country='cn')

4. 修复分区

msck repair table t1

在hdfs上已经存在分区数据,在元数据中没有对应的分区信息。此时需要执行修复分区,将分区数据对应的元数据添加到元数据库中,以便在后续的查询中能够查找到对应的分区数据。

5. 清空表,清空分区

truncate table t1 partition(dt=2018-12-12', country='cn')

不能清空外部表的分区。

6. 删除分区

drop table t1

alter table t1 drop partition(dt=2018-12-12', country='cn')

动态分区

1. 动态分区是指分区字段不是固定的,可以动态指定。

2. 创建动态分区表

create table t1(c1 string, c2 int, c3 string, c4 string)  partitioned by(year string, month string) 

3. 加载数据

insert into table t1 partion(year, month) select c1, c2, c3, c4, substr(c1,0,4), substr(c1, 6, 2) from t2

只有在非严格模式下,才能使用动态分区加载数据。

Hive DML 操作

加载本地数据:load data local inpath '/path/file.txt' into table table_name

加载HDFS数据:load data inpath '/hdfs/path/file.txt' into table table_name

覆盖数据:load data [local] inpath '/path/file.txt' overwrite into table table_name

插入数据

单表插入:insert into table t1 select * from t2

多表插入:

SQL方式:insert into table t1 values('col1', 'col2');

输出数据

单输出:insert overwrite [local] directory dir1 select * from t1

多输出:from t1

insert overwrite local directory dir1 select *

insert overwrite local directory dir2 select *

导入导出数据

导出数据:export table t1 to '/opt/path'

导入数据:import from '/opt/path'

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hive是一个基于Hadoop的数据仓库工具,用于进行大规模数据分析和查询。下面是Hive的一些基本操作命令: 1. 使用命令`show databases;`可以查看当前所有的数据库。 2. 使用命令`CREATE DATABASE park;`可以创建一个名为park的数据库。实际上,创建数据库相当于在Hadoop的HDFS文件系统中创建了一个目录节点,统一存在`/usr/hive/warehouse`目录下。 3. 使用命令`USE park;`可以进入park数据库。 4. 使用命令`show tables;`可以查看当前数据库下的所有表。 5. 使用命令`CREATE TABLE stu (id INT, name STRING);`可以创建一个名为stu的表,其中包含id和name两个字段。在Hive中,使用的是STRING类型来表示字符,而不是CHAR或VARCHAR类型。所创建的表实际上也是HDFS中的一个目录节点。默认情况下,所有在default数据库下创建的表都直接存在`/usr/hive/warehouse`目录下。 6. 使用命令`INSERT INTO TABLE stu VALUES (1, 'John');`可以向stu表中插入数据。HDFS不支持数据的修改和删除,但在Hive 2.0版本后开始支持数据的追加,可以使用`INSERT INTO`语句执行追加操作。Hive支持查询和行级别的插入,但不支持行级别的删除和修改。实际上,Hive的操作是通过执行MapReduce任务来完成的。插入数据后,我们可以在HDFS的stu目录下发现多了一个文件,其中存储了插入的数据。因此,可以得出结论:Hive存储的数据是通过HDFS的文件来存储的。 7. 使用命令`SELECT id FROM stu;`可以查询stu表中的数据,并只返回id字段的值。 需要注意的是,如果想在HDFS目录下自己创建一个分区,并在该分区下上传文件,需要执行一些额外的操作。首先,手动创建的分区在Hive中是无法使用的,因为原数据库中没有记录该分区的信息。要让自己创建的分区被识别,需要执行命令`ALTER TABLE book ADD PARTITION (category = 'jp') LOCATION '/user/hive/warehouse/park.db/book/category=jp';`。这条命令的作用是在原数据表book中创建对应的分区信息。另外,还可以使用命令`ALTER TABLE book****** 'nn');`来修改分区。 希望以上信息能对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值