前言
平时工作中有时会遇到 DataStream 转 Table 的需求,之前也写过几次,但是不总结就会忘掉还得专门扒拉之前写的代码,比较麻烦,现在总结一下,方便后面再有需要时查找。
DataStream
DataStream<Tuple> 转 Table1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16DataStream<Tuple5<Integer, String, Double, Long, String>> dataStream = env.fromCollection(
java.util.Arrays.asList(
Tuple5.of(1, "手机", 5999.99, 1733400000000L, "2025-12-05"),
Tuple5.of(2, "电脑", 8999.50, 1733400001000L, "2025-12-05"),
Tuple5.of(3, "耳机", 399.00, 1733400002000L, "2025-12-05")
)
);
// 字段顺序必须和 Tuple5 一致:id(第1位)、name(第2位)、price(第3位)、ts(第4位)、dt(第5位)
Table table = tableEnv.fromDataStream(
dataStream,
"id, name, price, ts, dt" // 直接指定字段名,类型会自动匹配(Tuple5 的泛型)
);
table.execute().print();
table.printSchema();