You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by "junjie.miao@goupwith.com" <ju...@goupwith.com> on 2022/09/08 06:17:23 UTC

关于keyby()如何保留原并行度的问题

hi:
flink keyby()时能否获取到subTask的编号,根据编号分组,让上游数据可以继续保持原有的数据依然在同一个subTask中进行后续计算。
在AbstractRichFunction类中this.getRuntimeContext().getIndexOfThisSubtask()可以获取编号,但是keyby()的KeySelector类中没有getRuntimeContext()方法。


Re:Re: Re: 关于keyby()如何保留原并行度的问题

Posted by haishui <ha...@126.com>.
定时器需要keyedStateBackend,所以必须是KeyedStream才能使用定时器。
如果让上游数据不改变subTask可以考虑DataStreamUtils#reinterpretAsKeyedStream方法,这是一个实验功能,见[1]。需要保证原来的DataStream已经是按key分组过的。


[1] https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/dev/datastream/experimental/














在 2022-09-08 16:31:36,"junjie.miao@goupwith.com" <ju...@goupwith.com> 写道:
>
>请问ProcessFunction中有onTimer方法,但是使用时提示必须是KeyedStream才能使用定时器,是否有不用转keyedStream就可以使用Timer的Function类。
>
> 
>发件人: r pp
>发送时间: 2022-09-08 16:14
>收件人: user-zh
>主题: Re: 关于keyby()如何保留原并行度的问题
>keyby() 时,还没有选好分组呢,这个只是告诉flink 要根据什么分组,所有也没有Runtime...
> 
>junjie.miao@goupwith.com <ju...@goupwith.com> 于2022年9月8日周四 14:17写道:
> 
>> hi:
>> flink keyby()时能否获取到subTask的编号,根据编号分组,让上游数据可以继续保持原有的数据依然在同一个subTask中进行后续计算。
>>
>> 在AbstractRichFunction类中this.getRuntimeContext().getIndexOfThisSubtask()可以获取编号,但是keyby()的KeySelector类中没有getRuntimeContext()方法。
>>
>>
> 
>-- 
>Best,
>  pp

Re: Re: 关于keyby()如何保留原并行度的问题

Posted by "junjie.miao@goupwith.com" <ju...@goupwith.com>.
请问ProcessFunction中有onTimer方法,但是使用时提示必须是KeyedStream才能使用定时器,是否有不用转keyedStream就可以使用Timer的Function类。

 
发件人: r pp
发送时间: 2022-09-08 16:14
收件人: user-zh
主题: Re: 关于keyby()如何保留原并行度的问题
keyby() 时,还没有选好分组呢,这个只是告诉flink 要根据什么分组,所有也没有Runtime...
 
junjie.miao@goupwith.com <ju...@goupwith.com> 于2022年9月8日周四 14:17写道:
 
> hi:
> flink keyby()时能否获取到subTask的编号,根据编号分组,让上游数据可以继续保持原有的数据依然在同一个subTask中进行后续计算。
>
> 在AbstractRichFunction类中this.getRuntimeContext().getIndexOfThisSubtask()可以获取编号,但是keyby()的KeySelector类中没有getRuntimeContext()方法。
>
>
 
-- 
Best,
  pp

Re: 关于keyby()如何保留原并行度的问题

Posted by r pp <pr...@gmail.com>.
keyby() 时,还没有选好分组呢,这个只是告诉flink 要根据什么分组,所有也没有Runtime...

junjie.miao@goupwith.com <ju...@goupwith.com> 于2022年9月8日周四 14:17写道:

> hi:
> flink keyby()时能否获取到subTask的编号,根据编号分组,让上游数据可以继续保持原有的数据依然在同一个subTask中进行后续计算。
>
> 在AbstractRichFunction类中this.getRuntimeContext().getIndexOfThisSubtask()可以获取编号,但是keyby()的KeySelector类中没有getRuntimeContext()方法。
>
>

-- 
Best,
  pp