Chr*_*ite 17
您可以通过以下几种方式实现此目的:
要设置所有Pig操作的Reducer数,可以使用该default_parallel属性 - 但这意味着每一步都将使用一个reducer,从而降低吞吐量:
set default_parallel 1;
在调用STORE之前,如果其中一个操作执行的是(COGROUP,CROSS,DISTINCT,GROUP,JOIN(内部),JOIN(外部)和ORDER BY),那么您可以使用该PARALLEL 1关键字来表示使用单个reducer完成该命令:
GROUP a BY grp PARALLEL 1;
有关详细信息,请参阅Pig Cookbook - 并行功能
小智 15
您还可以使用Hadoop的getmerge命令合并所有这些part-*文件.只有从Pig shell(而不是Java)运行Pig脚本时才可以执行此操作.
这比建议的解决方案更有优势:因为您仍然可以使用多个Reducer来处理数据,因此您的工作可能会运行得更快,特别是如果每个reducer输出的数据很少.
grunt> fs -getmerge <Pig output file> <local file>
Run Code Online (Sandbox Code Playgroud)