Reduce等函数的对下reuse问题

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Reduce等函数的对下reuse问题

nobleyd
如题,想知道reduce函数实现的时候,什么情况复用对下可能导致问题呢?or永远不可能导致问题呢?


比如计算图中存在很多重复计算:

streamA.reduce(reduceFunction1,....);

streamA.reduce(reduceFunction2,....);

streamA.xxxx
Reply | Threaded
Open this post in threaded view
|

Re: Reduce等函数的对下reuse问题

nobleyd
再具体点,reduce中return的对象作为reduce之后输出(这里是否涉及立即序列化)。

reduce(new ReduceFunction<ObjCls>{

  @Override
  public ObjCls reduce( ObjCls ele1, ObjCls ele2 ){
    long resultPv = ele1.getPv() + ele2.getPv();

    ele1.setPv(999);   //  此处如果加这么一句setPv,会影响到什么算子呢?(各种可能DAG情况下)

    ele1.setPv( resultPv );
    return ele1;
  }

})

赵一旦 <[hidden email]> 于2020年11月16日周一 下午2:40写道:

> 如题,想知道reduce函数实现的时候,什么情况复用对下可能导致问题呢?or永远不可能导致问题呢?
>
>
> 比如计算图中存在很多重复计算:
>
> streamA.reduce(reduceFunction1,....);
>
> streamA.reduce(reduceFunction2,....);
>
> streamA.xxxx
>
Reply | Threaded
Open this post in threaded view
|

Re: Reduce等函数的对下reuse问题

nobleyd
这个问题有人讨论下嘛?

赵一旦 <[hidden email]> 于2020年11月16日周一 下午2:48写道:

> 再具体点,reduce中return的对象作为reduce之后输出(这里是否涉及立即序列化)。
>
> reduce(new ReduceFunction<ObjCls>{
>
>   @Override
>   public ObjCls reduce( ObjCls ele1, ObjCls ele2 ){
>     long resultPv = ele1.getPv() + ele2.getPv();
>
>     ele1.setPv(999);   //  此处如果加这么一句setPv,会影响到什么算子呢?(各种可能DAG情况下)
>
>     ele1.setPv( resultPv );
>     return ele1;
>   }
>
> })
>
> 赵一旦 <[hidden email]> 于2020年11月16日周一 下午2:40写道:
>
>> 如题,想知道reduce函数实现的时候,什么情况复用对下可能导致问题呢?or永远不可能导致问题呢?
>>
>>
>> 比如计算图中存在很多重复计算:
>>
>> streamA.reduce(reduceFunction1,....);
>>
>> streamA.reduce(reduceFunction2,....);
>>
>> streamA.xxxx
>>
>