Rah*_*ley 2 java apache-spark rdd
我正在初始化一个累加器
final Accumulator<Integer> accum = sc.accumulator(0);
然后在map函数中,我试图递增累加器,然后在设置变量时使用累加器值.
JavaRDD<UserSetGet> UserProfileRDD1 = temp.map(new Function<String, UserSetGet>() {
@Override
public UserSetGet call(String arg0) throws Exception {
UserSetGet usg = new UserSetGet();
accum.add(1);
usg.setPid(accum.value().toString();
}
});
Run Code Online (Sandbox Code Playgroud)
但我得到以下错误.
16/03/14 09:12:58 ERROR executor.Executor:阶段2.0(TID 2)中任务0.0的异常java.lang.UnsupportedOperationException:无法读取任务中的累加器值
编辑 - 根据Avihoo Mamka的回答,无法在任务中获得累加器值.
那么无论如何我可以并行实现同样的目标.这样,每当变量(例如像静态变量)在我的map函数中递增时,Pid值就会被设置.
归档时间: |
|
查看次数: |
2343 次 |
最近记录: |