1、创建传感器实体类
static class SensorReading{
// 传感器 id
private String sensorId;
// 时间戳
private Long timeStamp;
// 温度
private Double temperature;
public SensorReading(String sensorId,Long timeStamp,Double temperature){
this.sensorId = sensorId;
this.timeStamp = timeStamp;
this.temperature = temperature;
}
@Override
public String toString() {
return "SensorReading{" +
"sensorId='" + sensorId + '\'' +
", timeStamp=" + timeStamp +
", temperature=" + temperature +
'}';
}
2、模拟传感器数据
public static List getSensorList(){
// 模拟传感器数据
List list = new ArrayList<SensorReading>();
list.add(new SensorReading("1",1608112731l,35.5));
list.add(new SensorReading("2",1608112830l,35.6));
list.add(new SensorReading("3",1608112837l,35.5));
list.add(new SensorReading("4",1608112842l,35.7));
list.add(new SensorReading("5",1608112851l,35.8));
return list;
}
3、使用 fromCollection 方法读取数据,并展示控制台
public static void main(String[] args) throws Exception {
// 创建流处理的执行环境
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
//使用StreamExecutionEnvironment创建DataStream
// Source数据源为集合,从getSensorList方法中获取
DataStreamSource<SensorReading> stream1 = env.fromCollection(getSensorList());
// 调用Sink
stream1.print("stream1:").setParallelism(1);
// 启动任务执行
env.execute();
}