如何减少元素数量的数组?

问题描述 投票:0回答:1

我有MyMappepMyReducer类是从MapperReducer apache hadoop clases扩展而来的,它具有重载的map&reduce方法。

映射后,我得到了pair(key,value),其中value是文本格式,并且包含类似“ 0,1,1,0,0,1,0,1”的内容。因此,问题是-如何按元素减少这种价值?

例如,我的意思是从“ 0,1,1,0,0,1,0,1”和“ 1,1,1,1,1,1,1,1,1”变成“ 1,2 ,2,1,1,2,1,2“。还是应该通过将值转换为其他更易于减少的格式来简化我的地图方法?

arrays apache hadoop text mapreduce
1个回答
0
投票

我不确定我是否理解您的问题。如果您同时共享-地图阶段的键和值,以及如何减少它们,那将很棒。

您可以在映射阶段本身中调用reduce逻辑(使用combiner)。组合器仅在映射阶段运行,并执行与reducer相同的逻辑,并帮助优化映射和简化阶段之间网络上的数据移动。

这可以通过在job.setCombinerClass中用化简器类名称设置属性driver class来完成。

Job job = Job.getInstance(conf, "Your job name");
job.setJarByClass(DriverClassName.class);

job.setMapperClass(YourMapperClass.class);
job.setReducerClass(YourReducerClass.class);
job.setCombinerClass(YourReducerClass.class);
... 

让我知道它是否对您有用。

© www.soinside.com 2019 - 2024. All rights reserved.