如火星减少可以通过密钥迭代所有值,如hadoop mapreduce

时间:2017-06-21 08:35:30

标签: hadoop apache-spark mapreduce

在我的项目中,我需要考虑一个键的所有值来决定mapreduce的输出。在hadoop mapreduce中,这可以像代码一样轻松实现:

reduceFunction (Text key, Iterator <V> valueIter) {
  outputAttri res;
  for (value : valueIter) {
    if (condition_1 (value)) addingInfo_1 (res);
    else if (condition_2 (value)) addingInfo_2 (res);
    ......
  }
  myOutput outputValue = allConditions (res);
  outputKeyValue (key, outputValue);
}

我可以通过spark RDD reduce功能轻松完成同样的事情吗? 感谢

ps:spark reduce(reducebykey)函数需要输出值相同的几个值,每个输入值在本地;但是我需要在另一个值到来时全局考虑每个值,因此不容易使用减少函数,如

reduceCall (v v1, v2) -> return (v) myFunction (v1, v2);

任何spark RDD mapreduce都可以通过密钥全局处理所有值吗?

0 个答案:

没有答案