1

我有一个 Pig 作业正在运行,但忘记筛选命令,当大部分作业完成时(4 小时的映射),reduce 阶段从未开始,可能是因为 Pig 不再运行。我在 pig_tmp 中有映射器的输出,但我不知道如何用 Piglatin 重新加载它。

地图部分(我假设)是我使用STREAMING的,输出是(chararray,float,float)。

根据Pig Docs,Pig 使用BinStorage()“加载和存储在多个 MapReduce 作业之间生成的临时数据”。基于此,我尝试了以下方法,但没有成功:

A = LOAD '.pig_tmp/tmp-238234234/tmp23423423/part-m-00000' 
    USING BinStorage() AS (col1:chararray, col2:float, col3:float);
DUMP A;
-- "Inputs(s): Successfully read 0 records (5402065 bytes) from "..."

没有运气,所以不要尝试列上的类型:

A = LOAD '.pig_tmp/tmp-238234234/tmp23423423/part-m-00000' 
    USING BinStorage() AS (col1, col2, col3);
DUMP A;
-- "Inputs(s): Successfully read 0 records (5402065 bytes) from "..."

仍然没有运气,所以不尝试列

A = LOAD '.pig_tmp/tmp-238234234/tmp23423423/part-m-00000' 
    USING BinStorage();
DUMP A;
-- "Inputs(s): Successfully read 0 records (5402065 bytes) from "..."

我在“AS (...)”块中用 1、2、3、4 和 5 列重复了此操作,我认为 Pig 可能在其中添加了一些额外的列。也没有运气。

如果我查看文件的输出,它显然是二进制数据(如上所述,大小为 5mb)。

4

0 回答 0