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

标签 hadoop hive apache-pig

我想将 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/

相关文章:

hadoop - 如何使用 mapreduce 从 hbase SequenceFile 中提取键值对?

hadoop - 执行 Hive 查询时分配了多少个 Mappers 和 Reducers

hadoop - 如何在 Apache pig 中给出方程式

hadoop - 在单个reducer中写入多个HCatalog模式?

date - 如何在 Hive 中转换日期格式 'DDMONYYYY:HH....' 样式日期

hadoop - 使用 Pig/hive mismatch 加载到 hive 中的文件

hadoop - Pig 将如何处理倾斜连接?

hadoop - Hadoop 中 uber 模式的目的是什么?

hadoop - 如何使用配置单元计算由 "|"分隔符分隔的每列中的单词数?

hadoop - hadoop HDFS block 大小注意事项