我使用Pig Multistorage以列id。
将数据存储在hdfs中所以数据存储为
/output/1/part-0000
/output/2/
/output/3/
现在我在hive中创建了一个分区表,我想将/ output文件夹中的数据加载到这个分区表中。有没有办法实现这个目标?
答案 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子句而不是分区列来移动数据。