🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
`partitioned by (dt string)`分区 ```mysql create table t1(id int, name string) partitioned by (country string) row format delimited fields terminated by ','; ``` 分区字段不能与已有字段重复 ``` 1,Apollo 2,Paul ``` 将数据放入`/user/hive/warehouse/gosuncn.db/t1`中会发现,此时并不会映射成功。 此时,就不能用`hadoop fs -put 1.txt /user/hive/warehouse/gosuncn.db/t1`来放置数据了。 在Hive命令行中执行: ```mysql LOAD DATA local INPATH '/root/1.txt' INTO TABLE t1 partition(country='USA'); ``` 加local表示加载Linux文件系统的文件,不加表示加载hdfs上的文件。 ```mysql select * from t1; ``` ``` +--------+----------+-------------+--+ | t1.id | t1.name | t1.country | +--------+----------+-------------+--+ | 1 | Apollo | USA | | 2 | Paul | USA | +--------+----------+-------------+--+ ``` 在Hive命令行中执行: ```mysql LOAD DATA local INPATH '/root/1.txt' INTO TABLE t1 partition(country='CHINESE'); ``` ``` +--------+----------+-------------+--+ | t1.id | t1.name | t1.country | +--------+----------+-------------+--+ | 1 | USA | CHINESE | | 2 | China | CHINESE | | 1 | Apollo | USA | | 2 | Paul | USA | +--------+----------+-------------+--+ ``` 分区字段是一个虚拟的字段,不存放任何数据。 多分区表就是文件夹里建文件夹。