代码如下:这是error提示:Exception in thread "main" java.lang.IllegalStateException: No operators defined in streaming topology. Cannot execute其实insert成功了,去hive cli确认过,select也查了数据,为什么还是提示我没有算子被定义呢?我需要batch table吗 EnvironmentSettings settings = EnvironmentSettings.newInstance().useBlinkPlanner().inBatchMode().build(); TableEnvironment tableEnv = TableEnvironment.create(settings);
String name = "myhive"; String defaultDatabase = "situation"; String hiveConfDir = "/load/data/hive/hive-conf"; // a local path String version = "1.2.1"; String CATALOG_NAME = "myhive";
HiveCatalog hiveCatalog = new HiveCatalog(name, defaultDatabase, hiveConfDir, version); hiveCatalog.open(); tableEnv.registerCatalog(CATALOG_NAME, hiveCatalog);
Optional<Catalog> myHive = tableEnv.getCatalog(CATALOG_NAME); ObjectPath myTablePath = new ObjectPath("situation", "flink_test"); System.out.println(myHive.get().getTable(myTablePath).getSchema());
//集成Hive内置函数 tableEnv.loadModule("hiveModule",new HiveModule(version));
tableEnv.useCatalog(CATALOG_NAME);
tableEnv.sqlUpdate("insert into situation.flink_test values (3,'kcz3')"); Table table = tableEnv.sqlQuery(" select * from situation.flink_test"); List<Row> rowList = TableUtils.collectToList(table); System.out.println(rowList);
tableEnv.execute("test");*来自志愿者整理的FLINK邮件归档
我不是特别确定,但是看起来跟这两行代码有关系: List<Row> rowList = TableUtils.collectToList(table); System.out.println(rowList); 这两行代码应该是已经把你前面的SQL执行了。然后最后那个 tableEnv.execute("test"); 就没有可以执行的算子了。*来自志愿者整理的FLINK邮件归档
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。