apache-flink - 进行表连接时如何获得最后一个结果(在flink sql中使用toRetractStream
问题描述
这是我使用 flink sql API 连接两个表的代码
tEnv.createTemporaryView("A", streamA,"speed_sum,cnt,window_start_time,window_end_time");
tEnv.createTemporaryView("B",streamB,"speed_sum,cnt,window_start_time,window_end_time");
String execSQL1 = "select A.speed_sum+COALESCE(B.speed_sum,0.0), " +
"A.cnt+COALESCE(B.cnt,0), " +
"A.window_start_time, A.window_end_time " +
"from A " +
"left join B on A.window_start_time = B.window_start_time ";
Table table = tEnv.sqlQuery(execSQL1);
DataStream<Tuple2<Boolean, Row>> streamResult = tEnv.toRetractStream(table, Row.class).;
streamResult.print("streamResult");
我的输出是这样的:
streamA-----------(5078.000000,199,1635333650000,1635333660000)
streamB-----------(1721.388891,111,1635333650000,1635333660000)
streamResult:3> (true,5078.0,199,1635333650000,1635333660000) // drop
streamResult:3> (false,5078.0,199,1635333650000,1635333660000) // drop
streamResult:3> (true,6799.388891220093,310,1635333650000,1635333660000) // want to save
如您所见,toRetractStream
API 将生成三条记录。我想知道如何获得最后一条记录,它正确地加起来了A.speed_sum
和B.speed_sum
(A.cnt
和B.cnt
)。
解决方案
推荐阅读
- angular - 错误:无法解析“rxjs/add/operator/map”
- angular - 使用 MatBottomSheet 时如何关闭浏览器上的工作表
- python - 在 python pandas 中搜索整行数据框的多个字符串值
- python - 无法将关键字“is_active”解析为字段?
- testing - DebugElement.query 不适用于在规范中动态添加到 dom 的元素
- r - 如何根据包含 NA 的组值创建 2D 网格、栅格或热图?
- python - Matplotlib - 显示唯一值频率的条形图
- amazon-web-services - 通过 HTTPS 从 Lambda 连接到 VPC 内的 AWS Elasticsearch
- vba - 运行所有仅客户端 Outlook 规则
- firebase - 调用 vuex 操作时状态变量变得未定义