我试图通过将flink env对象传递给flatMap对象来在flatMap中使用表api。但我得到了序列化异常,它告诉我添加了一些无法序列化的字段。
你能否对此有所了解?
此致 Sajeev
答案 0 :(得分:2)
您无法将ExecutionEnvironment
传递给Function
。这就像把Flink传递给Flink一样。
Table API是DataSet
/ DataStream
API之上的抽象。如果要同时使用Table API和较低的API,则可以使用TableEnvironment#toDataSet/fromDataSet
在API之间进行更改,即使在DataSet运算符之间也是如此。
DataSet<Integer> ds = env.fromElements(1, 2, 3);
BatchTableEnvironment tEnv = TableEnvironment.getTableEnvironment(env);
Table t = tEnv.fromDataSet(ds, "intCol"); // continue in Table API
Table t2 = t.select("intCol.cast(STRING)"); // do something with table
DataSet<String> ds2 = tEnv.toDataSet(t2); // continue in DataSet API