我是靠谱客的博主 要减肥冬日,最近开发中收集的这篇文章主要介绍hive 基本命令,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1. 创建

create: 创建数据库、表、视图

初级:create [database/table/view/schema] name;   在sql引擎内,均可用schema代替database

高级:create database if not exists name with dbproperties('creator'='binbin','date'='2018-11-15') ;  建立数据库时给库添加其属性字段;也可在后面加 location '路径'  指定存储位置,如果未指定的话其会存在数据库所在的目录位于属hive.metasotre.warehouse.dir 所指定的顶层目录之后;可以用

desc database extended name 

查看数据库的属性:即存储位置,编辑信息等。注意,除 dbproperties属性外,数据库的元数据信息都是不可更改的,包括数据库名和数据库所在的目录位置,没有办法删除或重置数据库属性

create database if not exists hive with dbproperties('creator'='binbin');
use hive;
create table if not exists usr(id bigint,name string,age int);
create view little_usr as select id,age from usr;

BTW:创建表时,未指定分隔符的时候,其默认分隔符为ascii码的控制符01,到时候load数据操作起来有点麻烦,所以最好在创建表时就把分隔符指定了.我在下面指定的分隔符是空格,你在准备数据文件的时候以空格分割即可。不过一般最后以制表符‘/t’来作为分隔符。

drop table usr;
create table if not exists usr(id bigint,name string,age int)row format delimited fields terminated by ' ';
load data local inpath '/home/binbin/Documents' overwrite into table usr;
hive> select * from usr;
OK
16521	'zhangsan'	20
16522	'lisi;	20
16523	'wangwu'	22

在hive数据库中创建外部表usr1,可以读取路径/usr/local/data下以“,”分隔的数据,还存在分区字段sex

create external table if not exists hive.usr1(id bigint,name string,age int) partitioned by(sex boolean) row format delimited fields terminated by ',' location '/usr/local/data';

2.增

把本地数据文件导入到hive数据库里面,请见上一块代码。加了local就是本地文件系统的数据文件。如果没有加的话就是你的路径就得是hdfs文件系统中的文件。注意分隔符。overwrite关键字是覆盖关键词,没有这个关键词的话它就自动append

3.删

drop 【databasetableschemaview】if exists name

注意删除数据库的时候,如果其中有表的话记得加关键词cascade,他会把数据库和里面的表一起删除,如果不加的话,外部表只会删除表名,表的数据还在,以后可以重建这个表,只要创建的时候location到数据目录即可,然后通过msck repair table table_name命令刷新数据的元信息到hive中,ps:若是分区被删除也能通过这个语句恢复

3.1 表删除分区字段

ALTER TABLE my_partition_test_table DROP IF EXISTS PARTITION (p_loctype='MHA');

4.查

4.1查看数据库,表,视图名

show 【databasestablesschemasviews】 name

4.2查看数据库,表,视图结构

4.3describe/desc 【databasetableschemaview】name

查看表中数据

select * from table_name;

查看表类型

desc extended table_name

可以查看表是否是管理表或外部表;[如果输出中有 tableType:MANAGED_TALBE表明是托管表,tableType:EXTERNAL_TALBE 外部表]

5.改

5.1 改数据库编辑属性

alter database name set dbproperties(‘edited-by’=’binbin’);

5.2 分区表添加分区字段

alter table my_partition_test_table if not exists add partition (p_hour='2017113003', p_city='573', p_loctype='MHA');

 

 

PS:分区理解:https://www.cnblogs.com/kouryoushine/p/7801924.html

最后

以上就是要减肥冬日为你收集整理的hive 基本命令的全部内容,希望文章能够帮你解决hive 基本命令所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部