python处理hive数据_hive的基本操作

1.DDL

数据库相关操作

Hive配置单元包含一个名为 default 默认的数据库.

create database [if not exists] ;---创建数据库

显示库

show databases; --显示所有数据库

删除数据库

drop database if exists [restrict|cascade];

--删除数据库,默认情况下,hive不允许删除含有表的数据库,要先将数据库中的表清空才能drop,否则会报错

--加入cascade关键字,可以强制删除一个数据库,默认是restrict,表示有限制的

eg. hive> drop database if exists users cascade;

drop database if exists [restrict|cascade]; --删除数据库,默认情况下,hive不允许删除含有表的数据库,要先将数据库中的表清空才能drop,否则会报错

use ; --切换数据库

1.1分区表(PARTITIONED BY)

分区建表分为2种,一种是单分区,也就是说在表文件夹目录下只有一级文件夹目录。另外一种是多分区,表文件夹下出现多文件夹嵌套模式。

1.1.1单分区建表语句:

create table day_table (id int, content string) partitioned by (dt string);单分区表,按天分区,在表结构中存在id,content,dt三列

1.1.2双分区建表语句:

create table day_hour_table (id int, content string) partitioned by (dt string, hour string);双分区表,按天和小时分区,在表结构中新增加了dt和hour两列。

1.1.3导入数据

单分区导入数据

LOAD DATA local INPATH '/root/hivedata/dat_table.txt' INTO TABLE day_table partition(dt='2017-07-07');

多分区导入数据

LOAD DATA local INPATH '/root/hivedata/dat_table.txt' INTO TABLE day_hour_table PARTITION(dt='2017-07-07', hour='08');

1.1.4基于分区的查询:

SELECT day_table.* FROM day_table WHERE day_table.dt = '2017-07-07';

1.1.5查看分区:

show partitions day_hour_table;

总的说来partition就是辅助查询,缩小查询范围,加快数据的检索速度和对数据按照一定的规格和条件进行管理。

1.2ROW FORMAT DELIMITED(指定分隔符)

create table day_table (id int, content string) partitioned by (dt string) row format delimited fields terminated by ','; ---指定分隔符创建分区表

复杂类型的数据表指定分隔符

create table complex_array(name string,work_locations array) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' COLLECTION ITEMS TERMINATED BY ',';

数据如下:

zhangsan beijing,shanghai,tianjin,hangzhou

wangwu shanghai,chengdu,wuhan,haerbin

create table t_map(id int,name string,hobby map)

row format delimited

fields terminated by ','

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值