Hadoop HIVE 创建表

创建库

库名目录描述
defaulthdfs://hdp20-01:9000/user/hive/warehouse默认数据库
create database db_test;hdfs://hdp20-01:9000/user/hive/warehouse/db_order.db在/user/hive/warehouse/目录下创建

创建表

创建表只是定义了一个表结构,真实数据要通过hdfs上传到对应表名的指定文件夹下

内部表

内部表(MANAGED_TABLE):数据放在/user/hive/warehouse中,删除时会删除元数据和表数据目录

1.该表会映射/user/hive/warehouse/db_order.db/t_test目录, 默认分隔符是^A

use db_test; //如果不指明数据库,默认使用default数据库
create table t_test(id string,create_time string);

2.可以自己指定分隔符

create table t_test(id string,create_time string)
row format delimited
fields terminated by ',';

3.按照已有的表格式创建表
create table t_user_2 like t_user;

4.创建表时,插入数据

create table t_access_user 
as
select ip,url from t_access;

外部表

外部表(EXTERNAL_TABLE):表目录由用户指定,既映射到指定路径,删除时只会删除元数据

create external table t_log(ip string,url string)
row format delimited
fields terminated by ','
location '/access/log';

分区表

分区表是指在表目录中为数据文件创建分区子目录,MR程序可以针对分区子目录中的数据进行处理,缩减读取数据的范围。
比如按天划分分区.

创建分区表:

create table t_access(ip string,url string,access_time string)
partitioned by(dt string)  # dt是分区字段,在数据表中也可以使用
row format delimited
fields terminated by ',';

向分区表中导入数据

load data local inpath '/root/access.log.2019-08-04.log' into table t_access partition(dt='20190804');
load data local inpath '/root/access.log.2019-08-05.log' into table t_access partition(dt='20190805');

分区数据查询

select count(*) from t_access where dt='20190804'; 只对20190804这一天的数据进行运算
select count(*) from t_access;对所有的进行运算

导入数据

1.hadoop put方法
2.hive交互方式,从本地导入,load data local inpath '/root/data' into table t_order;
3.hive交互方式,从hdfs导入,这个是剪切的方式load data inpath '.log' into table t_access partition(dt='20170806');

导出数据

1.将hive数据导出hdfs

insert overwrite directory '/root/data'
row format delimited fields terminated by ','
select * from t_access;

2.将hive数据导出本地

insert overwrite local directory '/root/data'
row format delimited fields terminated by ','
select * from t_access limit 100000;

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值