你是在 IDE 中直接执行的吗? 还是打包成 jar 包在集群上运行的呢?
如果是在 IDE 中执行,确实会有这个现象。原因是 tEnv.executeSql() 在执行 insert into
语句的时候,提交成功后就返回了,不会等待执行结束。
所以如果要在 IDE 中等待执行结束,需要额外增加等待代码:
val tableResult = tEnv.executeSql("insert into ...")
// wait job finished
tableResult.getJobClient.get()
.getJobExecutionResult(Thread.curren
Hi
可以看下這個demo
https://mp.weixin.qq.com/s/HqXaREr_NZbZ8lgu_yi7yA
--
Sent from: http://apache-flink.147419.n8.nabble.com/
tEnv.executeSql(insertSql); 是异步提交完任务就返回了,
如果是IDE里运行的话话,进程就直接退出导致job也就结束了。需要需要等到job结束,
目前可以通过下面这种方式
TableResult result = tEnv.executeSql(insertSql);
result..getJobClient().get().getJobExecutionResult(Thread.currentThread().getContextClassLoader()).get();
另外 tEnv.executeSql(insertSql); 已经提交作业了,不需要
下面粘的就是主程序代码
能在hive里建表,创建的TemporaryView也有数据,但是tEnv.executeSql(insertSql)这块好像没执行,往新建的hive表里插入数据没反应。求助
StreamExecutionEnvironment bsEnv =
StreamExecutionEnvironment.getExecutionEnvironment();
EnvironmentSettings bsSettings =
EnvironmentSettings.newInstance().useBlinkPlanner().inStreaming