MapReduce:如何处理一定百分比的输入(采样)

时间:2018-07-19 04:35:09

标签: java mapreduce sample

我正在用Java编写香草MapReduce。我必须处理很多sequencefile,并且我只想读取x%的输入。

这是我的逻辑:

protected void map(BytesWritable key, BytesWritable val, Context context){
 if (random.nextDouble() > sampleRate) {
      return;
    }
    //code to process data if it's under the sample rate of x
}

如果我这样做的话,很少有行会进入处理阶段,但是我注意到即使设置x = 0.1,运行时间和内存使用也不会减少太多

我怀疑花费大量时间将数据加载到任务中。我怎样做才能改善采样的运行时间?

我的目标是读取总输入行的x%。我已经对sequencefile(我的输入)使用了逻辑拆分,因此在将数据加载到Mapper任务时,数据应该平均分配。

谢谢

0 个答案:

没有答案