hive分区表和分桶表


先创建一个数据库myhive2019
create database if not exists myhive2019;

在myhive2019数据库下创建内部表 student:
create table student(id int,name string,gender string,age int,department string) row format delimited fields terminated by “,”;

导入数据:
load data local inpath “/home/hadoopUser/students.txt” into table student;
在这里插入图片描述

1.分区表

分区是在该表的目录下创建多个文件夹分别存储数据。

关键语法:partitioned by

1.1静态分区

  1. 创建分区表 student_ptn:
    create table student_ptn(id int,name string,age int,department string)
    partitioned by(gender string)
    row format delimited fields terminated by “,”;

    注意:分区字段不能与表字段重复。

  2. 创建分区表后,可以通过show partitions student_ptn;查看是否有分区定义,刚创建出来一般是没有的。
    在这里插入图片描述

  3. 通过alter语法添加一个或多个分区定义(该例子以性别作为分区):
    alter table student_ptn add partition(gender=‘male’);
    alter table student_ptn add partition(gender=‘female’);
    在这里插入图片描述
    对应地,在HDFS上也能看见创建的分区文件夹,d代表文件夹。
    在这里插入图片描述

  4. 往分区表中的分区文件夹下导入数据:
    导入数据的方式可查看这篇文章:hive数据导入的6种方式

    这里主要介绍2种插入方法:
    1)insert…values… (一般是用作测试)
    insert into table student_ptn partition(gender=‘male’) values(1,“小明”,18,“MA”);

    2)//单重或多重插入
    from 数据表
    insert…select…

    //单重插入
    from student
    insert into table student_ptn partition(gender=“male”) select id,name,age,department where gender = “男”;

    //多重插入,insert之间不用逗号分隔
    from student
    insert into table student_ptn partition(gender=‘male’) select id,name,age,department where gender=“男”
    insert into table student_ptn partition(gender=‘female’) select id,name,age,department where gender=“女”;

    //查询是否

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值