Calculate average using Flink DataStream for a window duration
<p>I am using Flink DataStream API where there where racks are available &amp; I want to calculate "average"of temperature group by rack IDs. My window duration is of 40 seconds &amp; my window is sliding every 10 seconds...Following is my code where I am calculating <strong>sum</strong> of temperatures every 10 seconds for every rackID,but now I want to calculate <strong>average</strong> temperatures::</p>

<pre><code>static Properties properties=new Properties();
    public static Properties getProperties()
    {
        properties.setProperty("bootstrap.servers", "54.164.200.104:9092");
        properties.setProperty("zookeeper.connect", "54.164.200.104:2181");
        //properties.setProperty("deserializer.class", "kafka.serializer.StringEncoder");
        //properties.setProperty("group.id", "akshay");
        properties.setProperty("auto.offset.reset", "earliest");
        return properties;
    }

 @SuppressWarnings("rawtypes")
public static void main(String[] args) throws Exception 
{
    StreamExecutionEnvironment env=StreamExecutionEnvironment.getExecutionEnvironment();
    env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);
    Properties props=Program.getProperties();
    DataStream&lt;TemperatureEvent&gt; dstream=env.addSource(new FlinkKafkaConsumer09&lt;TemperatureEvent&gt;("TemperatureEvent", new TemperatureEventSchema(), props)).assignTimestampsAndWatermarks(new IngestionTimeExtractor&lt;&gt;());
    DataStream&lt;TemperatureEvent&gt; ds1=dstream.keyBy("rackId").timeWindow(Time.seconds(40), Time.seconds(10)).sum("temperature");
    env.execute("Temperature Consumer");
}
</code></pre>

<p>How can I calcluate average temperature for the above example ??</p>