flink-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From HungChang <unicorn.bana...@gmail.com>
Subject Difference between using a global variable and broadcasting a variable
Date Sat, 25 Apr 2015 19:10:04 GMT
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.

Mime
View raw message