我正在尝试学习Hive,并在参考《 Hadoop权威指南》时感到有些困惑。
根据文本,Hive中的分区是通过创建与partitioning column具有相同值的子目录来完成的。但是,就像在Hive中一样,数据加载只是意味着复制文件,并且在加载期间不执行任何数据验证检查,而仅在查询期间,Hive也会检查数据是否进行分区。或如何确定应将哪个文件转到哪个目录?
或如何确定应将哪个文件转到哪个目录?
不需要,您必须在LOAD DATA
命令中设置目标分区的值。LOAD
对分区表执行操作时,必须通过参数指定要在其中加载数据的特定分区(目录)PARTITION
。根据文档:
加载到的目标可以是表或分区。如果表已分区,则必须通过为所有分区列指定值来指定表的特定分区。
例如,在此示例中:
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-15
和invites/ds=2008-08-08
文件夹中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句