如何从由于网络中断而停止的作业中加载hadooppig临时输出?

ndh0cuux  于 2021-06-21  发布在  Pig
关注(0)|答案(0)|浏览(175)

我运行了一个pig作业,但是忘记了筛选命令,当大部分作业完成(4小时的Map)时,reduce阶段从未开始,可能是因为pig不再运行了。我有pig\u tmp中Map器的输出,但是我不知道如何用piglatin重新加载它。
Map部分(我猜)是我用的 STREAMING ,输出为(chararray,float,float)。
根据Pig的文件,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大小)。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题