java – Flink Table API无法将DataSet转换为DataStream

我正在使用
Java的Flink Table API,我想将DataSet转换为DataStream ….以下是我的代码:

TableEnvironment tableEnvironment=new TableEnvironment();
Table tab1=table.where("related_value < 2014").select("related_value,ref_id");
DataSet<MyClass>ds2=tableEnvironment.toDataSet(tab1, MyClass.class);
DataStream<MyClass> d=tableEnvironment.toDataStream(tab1, MyClass.class);

但是当我尝试执行此程序时,它会抛出以下异常:

org.apache.flink.api.table.ExpressionException:JavaStreamingTranslator的无效根:Root(ArraySeq((related_value,Double),(ref_id,String))).您是否尝试将基于DataSet的表转换为DataStream,反之亦然?我想知道如何使用Flink Table API将DataSet转换为DataStream?

另一件事我想知道,对于模式匹配,有Flink CEP库可用.但是使用Flink Table API进行模式匹配是否可行?

最佳答案 Flink的Table API不是为将DataSet转换为DataStream而设计的,反之亦然.使用Table API无法做到这一点,目前还没有其他方法可以使用Flink.

统一DataStream和DataSet API(将批处理作为流的特殊情况处理,即作为有界流)是Flink的长期路线图.

点赞