Re: Difference between using a global variable and broadcasting a variable

Posted by Sebastian Schelter-2 on
URL: http://deprecated-apache-flink-user-mailing-list-archive.369.s1.nabble.com/Difference-between-using-a-global-variable-and-broadcasting-a-variable-tp1128p1129.html

Hi Hung,

A broadcast variable can also refer to an intermediate result of a Flink
computation.

Best,
Sebastian

On 25.04.2015 21:10, HungChang wrote:

> Hi,
>
> What would be the difference between using global variable and broadcasting
> it?
>
> A toy example:
>
> // Using global
> {{...
> private static int num = 10;
> }
>
> public class DivByTen implements FlatMapFunction<Tuple1&lt;Double>,
> Tuple1<Double>> {
>    @Override
>    public void flatMap(Tuple1<Double>value, Collector<Tuple1&lt;Double>> out)
> {
>       out.collect(new Tuple1<Double>(value/ num));
>    }
> }}
>
> // Using broadcasting :
> {...
> public static class DivByTen extends
> RichGMapFunction<Tuple1&lt;Double>, Tuple1<Double>>{
>
> private long num;
>
> @Override
> public void open(Configuration parameters) throws Exception {
> super.open(parameters);
> num = getRuntimeContext().<Integer> getBroadcastVariable(
> "num").get(0);
> }
>
> @Override
> public void map(Tuple1<Double>value, Collector<Tuple1&lt;Double>> out))
> throws Exception{
> out.collect(new Tuple1<Double>(value/num));
> }
> }
> }
>
> Best regards,
>
> Hung
>
>
>
> --
> View this message in context: http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/Difference-between-using-a-global-variable-and-broadcasting-a-variable-tp1128.html
> Sent from the Apache Flink User Mailing List archive. mailing list archive at Nabble.com.
>