之前的分区表都是先创建表然后加载数据到分区表中,然后就会在HDFS自动创建相关的目录存储数据,但是这里反过来做,先在HDFS中创建相应的目录,然后把数据直接上传到这个目录下,具体如下所示 先在HDFS中创建存放数据的目录 dfs -mkdir -p /user/hive/warehouse/ys.db/test/month=201809/day=02;然后直接上传数据到该目录下 dfs -put /opt/package/hive/txt/dept.txt /user/hive/warehouse/ys.db/test/month=201809/day=02;这时候查询数据会发现没有数据,只有相应的字段 这是因为分区表与数据还没有关联起来,下面有3中方法进行关联 1.执行修复命令 msck repair table test;2.执行添加分区 alter table test add partition(month='201809', day='02');3.load数据到分区 load data local inpath '/opt/package/hive/txt/dept.txt' into table test partition(month='201809',day='02');这时候再查询数据就会查到了
|