如何通过pig作业或maprecude作业控制存储在零件文件中的记录数?

时间:2013-08-16 09:10:24

标签: hadoop mapreduce apache-pig

有没有办法控制要存储在零件文件中的记录数?

感谢。

1 个答案:

答案 0 :(得分:0)

不容易(如果有的话)。输出中的部分文件数由脚本的并行性决定,并且数据被非确定地分成这些部分文件。我能想到的唯一方法是:

A = FOREACH output GENERATE 1 AS num ;
B = FOREACH (GROUP A ALL) GENERATE COUNT(A) AS totaloutputlines ; 
-- Then store both output and B

然后,在python包装器中,使用totaloutputlines设置python包装器运行的脚本的并行性,以便PAR = number of lines in B / number of lines you want per file。这将希望大约控制每个零件文件的记录数。

也许您可以通过将输出分配到您使用的字段的每个值的一个文件来获得MultiStorage所需的内容。