Hive外部表使用分区partition

1)创建外部表

create external table test(username String,work string) PARTITIONED BY(year String, month String, day String) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '/tmp/test/';  

2)修改表创建分区

alter table test add partition (year='2010', month='04', day='18') location '2010/04/18';  

3)查看外部表目录变化
  1. [Hadoop@hadoopmaster hadoop-1.0.3]$ bin/hadoop fs -mkdir /tmp/test/  
  2. [hadoop@hadoopmaster hadoop-1.0.3]$ bin/hadoop fs -ls /tmp/test/  
  3. Found 1 items  
  4. drwxr-xr-x   - hadoop supergroup          0 2012-07-03 19:17 /tmp/test/2010  
  5. [hadoop@hadoopmaster hadoop-1.0.3]$ bin/hadoop fs -ls /tmp/test/2010  
  6. Found 1 items  
  7. drwxr-xr-x   - hadoop supergroup          0 2012-07-03 19:17 /tmp/test/2010/04  
  8. [hadoop@hadoopmaster hadoop-1.0.3]$ bin/hadoop fs -ls /tmp/test/2010/04  
  9. Found 1 items  
  10. drwxr-xr-x   - hadoop supergroup          0 2012-07-03 19:17 /tmp/test/2010/04/18  

4)给外部表加载数据

bin/hadoop fs -put /tmp/test.txt /tmp/test/2010/04/18/  

5)执行测试查询

  1. hive> select * from test limit 10;  
  2. OK  
  3. zzz     it      2010    04      18  
  4. xxx     edu     2010    04      18  
  5. Time taken: 0.42 seconds  
  6. hive> select * from test where year='2010' and month='04' and day='18' limit 10;  
  7. OK  
  8. zzz     it      2010    04      18  
  9. xxx     edu     2010    04      18  
  10. Time taken: 0.287 seconds  
  11. hive> select * from test where year='2010' and month='04' and day='19' limit 10;  
  12. OK  
  13. Time taken: 0.113 seconds  
  14. hive>   

相关推荐