我想将 pig 输出插入到 Hive 表中(Hive 中的表已经使用确切的模式创建)。只需要将输出值插入到表中。我不想使用通常的方法,其中我首先存储到一个文件中,然后从 Hive 中读取该文件,然后插入到表中。我需要减少已完成的额外跃点。
这可能吗?如果可以,请告诉我如何做到这一点?
谢谢
最佳答案
好的。在 HDFS 目录中的某处创建一个具有架构布局的外部配置单元表。让我们说
create external table emp_records(id int,
name String,
city String)
row formatted delimited
fields terminated by '|'
location '/user/cloudera/outputfiles/usecase1';
只需像上面那样创建一个表,无需将任何文件加载到该目录中。
现在编写一个 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('|');
确保 Pigscript 中最终 FOREACH 语句的目标位置和分隔符以及架构布局与 Hive DDL 架构相匹配。
关于hadoop - 在单个实例中将 pig 输出存储到 Hive 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31288688/