请大佬指导下:
table api grooupbywindow,为什么输出是Empty set。
public class GroupByWindow {
public static void main(String[] args) {
StreamExecutionEnvironment env =
StreamExecutionEnvironment.getExecutionEnvironment();
StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env);
List<Order> lst = new ArrayList<>();
lst.add(new Order("a", "123", new Timestamp(Instant.now().toEpochMilli())));
lst.add(new Order("a", "124", new Timestamp(Instant.now().toEpochMilli())));
lst.add(new Order("a", "125", new Timestamp(Instant.now().toEpochMilli())));
DataStreamSource<Order> stream = env.fromCollection(lst);
// 声明一个额外的字段作为时间属性字段
Table table = tableEnv.fromDataStream(stream, $("productId"), $("fee"),
$("acceptDate"), $("user_action_time").proctime());
tableEnv.createTemporaryView("People", table);
tableEnv.from("People").window(Tumble.over(lit(1).seconds()).on($("user_action_time")).as("w"))
.groupBy($("productId"),$("w"))
.select(
$("productId"),
$("productId").count().as("productCnt"),
$("w").start(),
$("w").end()
).execute().print();
}
}
Empty set
Process finished with exit code 0