vlambda博客
学习文章列表

使HDFS数据与分区表产生联系的方式

把数据直接上传到分区目录上,让分区表和数据产生关联的三种方式

  1. 方式一:上传数据后修复
    上传数据

    dfs -mkdri -p /user/hive/warehouse/mydb.db/dept_partition02/day=20200401/hour=13;
    dfs -put /opt/moudule/datas/dept_20200401.log//user/hive/warehouse/mydb.db/dept_partition2/day=20200401/hour=13;

    查询数据(查询不到刚上传的数据)

    select * from dept_partition2 where day='20200401' and hour='13';

    修复指令

    msck repair table dept_partition2;

    再次查询数据

    select * from dept_partition2 where day='20200401' and hour='13';
  2. 方式二:上传数据后添加分区
    上传数据

    dfs -mkdir -p 
    /user/hive/warehouse/mydb.db/dept_partition2/day=20200401/hour=14;
    dfs -put /opt/module/hive/datas/dept_20200401.log /user/hive/warehouse/mydb.db/dept_partition2/day=20200401/hour=14;

    执行添加分区

    alter table dept_partition2 add partition (day='201709',hour='14');

    查询数据

    select * from dept_partition2 where day='20200401' and hour='14';
  3. 方式三:创建文件夹后load 数据到分区
    创建目录

    dfs -mkdir -p /user/hive/warehouse/mydb.db/dept_partition2/day=20200401/hour=15;

    上传数据

    load data local inpath '/opt/module/hive/datas/dept_20200401.log' into table dept_partition2 partition(day='20200401',hour='15');

    查询数据

    select * from dept_partition2 where day='20200401' and hour='15';