java基于时间窗口统计_java – 使用Flink DataStream计算窗口持续时间的平均值

本文档展示了如何使用Java和Flink DataStream API处理温度数据。通过设置时间窗口为40秒,并以10秒的间隔滑动,代码目前计算每个机架ID的温度总和。要修改代码以计算平均温度,你需要将`sum("temperature")`替换为`average("temperature")`,从而得到每个窗口内温度的平均值。
摘要由CSDN通过智能技术生成

我正在使用Flink DataStream API,那里有可用的机架和我想按机架ID计算温度组的“平均值”.我的窗口持续时间是40秒&我的窗口每10秒钟滑动一次……以下是我的代码,我每隔10秒钟计算一次温度总和,但现在我想计算平均温度::

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 dstream=env.addSource(new FlinkKafkaConsumer09("TemperatureEvent", new TemperatureEventSchema(), props)).assignTimestampsAndWatermarks(new IngestionTimeExtractor<>());

DataStream ds1=dstream.keyBy("rackId").timeWindow(Time.seconds(40), Time.seconds(10)).sum("temperature");

env.execute("Temperature Consumer");

}

如何计算上述例子的平均温度?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值