在单个实例中将pig输出存储到Hive表中

Kir*_*ika 5 hadoop hive apache-pig

我想将pig输出插入到Hive表中(Hive中的表已经使用确切的模式创建).需要将输出值插入表中.我不想要通常的方法,其中我首先存储到一个文件,然后从Hive读取该文件,然后插入表中.我需要减少已经完成的额外跳跃.

可能吗.如果是这样,请告诉我如何做到这一点?

谢谢

Sur*_*aja 6

好.在HDFS目录中的某处创建一个带有模式布局的外部配置单元表.让我们说

create external table emp_records(id int,
                                  name String,
                                  city String)
                                  row formatted delimited 
                                  fields terminated by '|'
                                  location '/user/cloudera/outputfiles/usecase1';
Run Code Online (Sandbox Code Playgroud)

只需创建一个如上所示的表,无需将任何文件加载到该目录中.

现在编写一个Pig脚本,我们读取某些输入目录的数据,然后在存储该Pig脚本的输出时使用如下所示

A =  LOAD 'inputfile.txt' USING PigStorage(',') AS(id:int,name:chararray,city:chararray);
B = FILTER A by id > = 678933;
C = FOREACH B GENERATE id,name,city;
STORE C INTO '/user/cloudera/outputfiles/usecase1' USING PigStorage('|');
Run Code Online (Sandbox Code Playgroud)

确保Pigscript中最终FOREACH语句的目标位置和分隔符以及架构布局与Hive DDL架构匹配.