小编ser*_*eyf的帖子

Pig:每个输入行/行强制一个映射器

我有一个Pig Streaming作业,其中映射器的数量应该等于输入文件中的行数/行数.我知道那个设定

set mapred.min.split.size 16 
set mapred.max.split.size 16
set pig.noSplitCombination true 
Run Code Online (Sandbox Code Playgroud)

将确保每个块是16个字节.但是,我如何确保每个地图作业只有一行作为输入?这些行是可变长度的,因此使用常数mapred.min.split.size并且mapred.max.split.size不是最佳解决方案.

这是我打算使用的代码:

input = load 'hdfs://cluster/tmp/input';
DEFINE CMD `/usr/bin/python script.py`;
OP = stream input through CMD;
dump OP;
Run Code Online (Sandbox Code Playgroud)

解决了!感谢zsxwing

并且,如果其他人遇到这种奇怪的废话,请知道:

要确保Pig为每个输入文件创建一个映射器,您必须设置

set pig.splitCombination false
Run Code Online (Sandbox Code Playgroud)

不是

set pig.noSplitCombination true
Run Code Online (Sandbox Code Playgroud)

为什么会这样,我不知道!

hadoop mapreduce apache-pig

6
推荐指数
1
解决办法
3502
查看次数

标签 统计

apache-pig ×1

hadoop ×1

mapreduce ×1