Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 将分区数据插入分区配置单元表_Hadoop_Hive_Apache Pig_Hadoop Partitioning - Fatal编程技术网

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

Hadoop 将分区数据插入分区配置单元表,hadoop,hive,apache-pig,hadoop-partitioning,Hadoop,Hive,Apache Pig,Hadoop Partitioning,我已经使用列id为的Pig Multistorage将数据存储在hdfs中 所以数据存储为 /output/1/part-0000 /output/2/ /output/3/ 现在我已经在配置单元中创建了一个分区表,我想将/output文件夹中的数据加载到此分区表中。有什么方法可以实现这一点吗?首先创建一个临时配置单元表,从中加载清管器输出的所有数据。 然后从临时表加载到实际的分区配置单元表。 如下所示: FROM emp_external temp INSERT OVERWRITE TABL

我已经使用列id为的Pig Multistorage将数据存储在hdfs中

所以数据存储为

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

现在我已经在配置单元中创建了一个分区表,我想将/output文件夹中的数据加载到此分区表中。有什么方法可以实现这一点吗?

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

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

否则,您可以浏览Hcatlog以了解这种情况。

不确定您是希望将outputfolder(从pig创建)中的数据插入现有表,还是将outputfolder中的数据加载到新的配置单元分区表中

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

如果希望将数据加载到现有配置单元表中,则可以创建一个临时表@Aman mentioed,然后插入目标表

您只需将hdfs中的文件从输出/复制到配置单元表位置即可


希望这有助于将配置单元架构分配给pig输出位置,并将分区列(Alter table Add Partition)作为列id。现在两者都是配置单元表,您可以在分区列上使用where子句移动数据