Hi Salva,

I already answered on SO [1], but I'll replicate it here:

With Flink 1.9, you cannot dynamically broadcast to all channels anymore.
Your StreamPartitioner has to statically specify if it's a broadcast with
isBroadcast. Then, selectChannel is never invoked.

Do you have a specific use case, where you'd need to dynamically switch?

Best,

Arvid

[1]
https://stackoverflow.com/questions/59485064/migrating-custom-dynamic-partitioner-from-flink-1-7-to-flink-1-9

On Sat, Jan 4, 2020 at 7:00 AM Salva Alcántara <salcantara...@gmail.com>
wrote:

> Thanks Chesnay! Just to be clear, this how my current code looks like:
>
> ```
> unionChannel = broadcastChannel.broadcast().union(singleChannel)
>
> result = new DataStream<>(
>     unionChannel.getExecutionEnvironment(),
>     new PartitionTransformation<>(unionChannel.getTransformation(), new
> MyDynamicPartitioner())
> )
> ```
>
> The problem when migrating to Flink 1.9 is that MyDynamicPartitioner cannot
> handle broadcasted elements as explained in the question description. So,
> based on your reply, I guess I could do something like this:
>
> ```
> resultSingleChannel = new DataStream<>(
>     singleChannel.getExecutionEnvironment(),
>     new PartitionTransformation<>(singleChannel.getTransformation(), new
> MyDynamicPartitioner())
> )
>
> result = broadcastChannel.broadcast().union(resultSingleChannel)
> ```
>
> I will give it a try and see if it works.
>
>
>
>
> --
> Sent from:
> http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/
>

Reply via email to