了解Hive中的分区

时间:2016-08-06 08:13:36

标签: hive

我正在尝试学习Hive,在参考The Hadoop权威指南时,我有一些困惑。

根据文本,Hive中的分区是通过创建具有相同分区列值的子目录来完成的。但是在Hive中,数据加载只是意味着复制文件,在加载过程中不进行数据验证检查,但在查询期间,Hive也会检查数据是否有分区。或者它如何确定哪个文件应该转到哪个目录?

1 个答案:

答案 0 :(得分:0)

  

或者它如何确定哪个文件应该转到哪个目录?

不需要,您必须在LOAD DATA命令中设置目标分区的值。在分区表中执行LOAD操作时,必须通过PARTITION参数指定要在其中加载数据的特定分区(目录)。根据{{​​3}}:

  

加载的目标可以是表格或分区。如果表   是分区,然后必须指定的特定分区   表通过指定所有分区列的值。

例如,在documentation中:

  hive> LOAD DATA LOCAL INPATH './examples/files/kv2.txt' OVERWRITE INTO TABLE invites PARTITION (ds='2008-08-15');
  hive> LOAD DATA LOCAL INPATH './examples/files/kv3.txt' OVERWRITE INTO TABLE invites PARTITION (ds='2008-08-08');

这两个文件将存储在invites/ds=2008-08-15invites/ds=2008-08-08文件夹中。