将分区数据插入分区的配置单元表

时间:2015-10-29 11:20:45

标签: hadoop hive apache-pig hadoop-partitioning

我使用Pig Multistorage以列id。

将数据存储在hdfs中

所以数据存储为

/output/1/part-0000
/output/2/
/output/3/

现在我在hive中创建了一个分区表,我想将/ output文件夹中的数据加载到这个分区表中。有没有办法实现这个目标?

3 个答案:

答案 0 :(得分:0)

首先创建一个临时配置表,从中加载来自输出的所有数据 然后从临时表加载到实际的分区配置单元表 如下所示:

FROM emp_external temp INSERT OVERWRITE TABLE emp_partition PARTITION(country) SELECT temp.id,temp.name,temp.dept,temp.sal,temp.country;   

否则,您可以针对此案例探索Hcatlog。

答案 1 :(得分:0)

不确定是否要将输出文件夹(从pig创建)中的数据插入到现有表中,或者将输出文件夹中的数据加载到新的hive分区表中。

如果要将数据加载到新的配置单元表中,可以创建指向输出文件夹的新分区表

如果您要将数据加载到现有的配置单元表中,则可以创建临时表作为@Aman mentioed并插入到目标表中

您可以将hdfs中的文件从output /移动/复制到hive表位置。

希望这有帮助

答案 2 :(得分:0)

将Hive架构分配到pig输出位置,并将分区列(Alter table Add Partition)作为列ID。现在两个都是hive表,你可以使用where子句而不是分区列来移动数据。