在我的项目中,我需要考虑一个键的所有值来决定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都可以通过密钥全局处理所有值吗?